首頁 > 軟體

Mysql8建立使用者及賦權操作實戰記錄

2022-04-15 13:00:36

1、進入mysql

mysql -uroot -p

2、建立使用者

create user 'testuser1'@'%' identified by '123456';

這裡表示建立一個不限制ip登入的使用者 testuser1

該使用者的密碼是 123456

%代表不限制ip登入

重新整理許可權,每一次許可權更改後都重新整理一下

flush privileges;

在本地新建連線都可以登入該使用者了

這個時候你開啟會發現只有information_schema一個資料庫

3、給使用者賦權

grant all privileges on test_grant.* to 'testuser1'@'%' with grant option;

這裡表示給使用者testuser1賦予資料庫test_grant(這是我之前建立好的資料庫)中所有表的所有許可權

with grant option表示該使用者可以給其他使用者賦權,但是不能超過該使用者的許可權

此時檢視,使用者testuser1多了一個test_grant資料庫

這裡的all privileges 可換成select,insert,update,delete,drop,create等

4、檢視使用者許可權

show grants for 'testuser1'@'%';

5、復原使用者許可權

revoke all privileges on test_grant.* from 'testuser1'@'%';

這裡表示復原使用者testuser1對資料庫test_grant的所有操作許可權

注意:這裡如果這麼寫,你會發現你開啟還是有資料庫test_grant(不過你無法操作該資料庫了),這是因為我之前建立的時候用到了with grant option,因為all privileges 是除了with grant option的所有許可權

執行如下語句 回收使用者所有許可權即可

revoke all privileges,grant option from 'testuser1'@'%';

6、刪除使用者

drop user 'testuser1'@'%';

7、查詢所有使用者及其許可權

SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;

也可以這樣

SELECT User, Host FROM mysql.user;

附:檢視使用者許可權

show grants for ‘#userName'@'#host';

#userName 代表使用者名稱

#host 代表存取許可權,如下

  • %代表通配所有host地址許可權(可遠端存取)
  • localhost為本地許可權(不可遠端存取)
  • 指定特殊Ip存取許可權 如10.138.106.102


IT145.com E-mail:sddin#qq.com