1. 程式人生 > >3、用戶管理語句

3、用戶管理語句

連接數 mysqld ins ges pro 執行 賬號 重命名 函數

_ 表示任意單個字符

% 表示任意長度的任意字符

查詢用戶

#切換到mysql庫,查詢user表,得到當前庫的用戶名和其能夠遠程登錄時所在的host
> use mysql;
> select user,host,password from user;

創建用戶

1. 方法一
> create user ‘kcxg‘@‘127.0.0.1‘;
> create user ‘kcxg‘@‘127.0.0.1‘ identified by ‘123456‘;
2. 方法二(使用較少,設置嚴格的sql-mode後,無法使用)
> insert into mysql.user(user,host,password) values(‘kcxg‘,‘192.168.%.%‘,password(‘123456‘));
3.方法三(在授權數據庫時,用戶不存在將會自動創建)
> grant all on  cuiyk.* to [email protected] identified by ‘123456‘

刪除用戶

1. 方法一(使用此方法會有相關信息殘留)
> delete from mysql.user where user=‘kcxg‘ and host=‘localhost‘;
2. 方法二
> drop user kcxg@localhost;

重命名用戶

> rename user oldname to newname;

修改密碼

1.方法一
> mysqladmin -u用戶名 -p舊密碼 password 新密碼
2.方法二
> set password for kcxg@host = password(‘newpassword‘);
3.方法三
適用mysql5.6以及之前的版本
>update mysql.user set password = password(‘密碼‘) where user=‘用戶名‘;
適用mysql5.7
> update mysql.user set authentication_string = password(‘密碼‘) where user=‘用戶名‘;
4.方法四(重置root密碼)
- [1] 停止當前mysql進程
- [2] mysqld_safe --skip-grant-tables &
- [3] mysql -uroot
- [4] mysql> UPDATE mysql.user SET password=PASSWORD("new password") WHERE user=‘root‘;
- [5] mysql> FLUSH PRIVILEGES;
- [6] 停止數據庫以後,按照正常的方式重啟數據庫,使用新密碼登錄即可

授權管理

授權命令

> GRANT ALL [PRIVILEGES] ON db.tbl TO ‘username‘@‘host‘ IDENTIFIED BY ‘password‘;
#給本地用戶授權某個數據庫的所有權限
> grant all privileges on zsythink.* to zsy@localhost identified by ‘zsythink‘;
#給遠程用戶授權
> grant all privileges on zsythink.* to zsy@‘%‘ identified  by  ‘zsythink‘;
> FLUSH PRIVILEGES
#授權某些權限
> grant select privileges on zsythink.* to zsy@‘192.168.%.%‘;
> grant insert,delete,update,select on zsythink.* to zsy@‘192.168.%.%‘;
#授權於多個用戶
> grant select on hellodb.* to zsy@localhost,zsythink@localhost;
#只對某張表的某個字段授權
> grant select (name,age) on zsythink.students to zsy@localhost;
#function指明被操作對象為函數
> grant execute on function zsythink.test to zsy@‘192.168.%.%‘;
#procedure 指明備操作的對象為存儲過程
> grant execute on procedure zsythink.test to zsy@‘192.168.%.%‘;
#usage權限用於登錄用戶
> grant usage on *.* to ‘zsy‘@‘222.222.222.222‘ require ssl;
> grant usage on *.* to ‘zsy‘@‘222.222.222.222‘ require none;
#如果在授權zsy用戶時,搭配grant選項,則zsy用戶有權將擁有的用戶授予其他用戶
> grant select on zsythink.* to zsy@‘192.168.%.%‘  with grant option;

MAX_QUERIES_PER_HOUR:限制用戶每小時執行的查詢語句數量
MAX_UPDATES_PER_HOUR:限制用戶每小時執行的更新語句數量
MAX_CONNECTIONS_PER_HOUR:限制用戶每小時連接數據庫的次數
MAX_USER_CONNECTIONS:限制用戶使用當前賬號同時連接服務器的連接數量
> grant select on *.* to zsy@‘192.168.%.%‘ identified by ‘123456‘ with MAX_QUERIES_PER_HOUR 20;

查看授權

> show grants for 用戶名;
> show grants for zsy@localhost
> select * from mysql.db where Db="你要查看的數據庫"

刪除授權

> revoke "要移除的權限" on 數據庫.表 from 用戶@host;

3、用戶管理語句