1. 程式人生 > 其它 >MySQL資料庫使用者管理

MySQL資料庫使用者管理

目錄

一、使用者管理

1.1新建使用者

     1.1.1使用明文建立使用者

     1.1.2使用密文建立使用者

1.2檢視使用者資訊

1.3重新命名使用者

1.4刪除使用者

1.5修改當前登入使用者密碼

1.6修改其他使用者密碼

1.7忘記root密碼的解決辦法

二、資料庫使用者授權

2.1授予許可權

     2.1.1允許使用者 yxp在本地查詢ali資料庫中所有表的資料記錄,但禁止查詢其他資料庫中的表的記錄。

     2.1.2測試

     2.1.3允許使用者dhc在所有終端遠端連線mysql,並擁有所有許可權

2.2檢視許可權

2.3撤銷許可權

 

 

一、使用者管理

1.1新建使用者

1 CREATE USER '使用者名稱'@'來源地址' [IDENTIFIED BY [PASSWORD] '密碼'];

①‘使用者名稱’:指定將建立的使用者名稱

②‘來源地址’:指定新建立的使用者可在哪些主機上登入,可使用IP地址、網段、主機名的形式,本地使用者可用localhost,允許任意主機登入可用萬用字元%

③‘密碼’:

  • 若使用明文密碼,直接輸入’密碼’,插入到資料庫時由Mysql自動加密;
  • 若使用加密密碼,需要先使用SELECT PASSWORD(‘密碼’); 獲取密文,再在語句中新增 PASSWORD ‘密文’;
  • 若省略“IDENTIFIED BY”部分,則使用者的密碼將為空(不建議使用)

 

1.1.1使用明文建立使用者

1 CREATE USER 'dc'@'localhost' IDENTIFIED BY '123456';

 

1.1.2使用密文建立使用者

1 select password('199808');
2 create user 'zly'@'localhost' identified by password '*ECC2C3E056D257E8C4D49B5E9B511C9D422C84FC';

 

1.2檢視使用者資訊

建立後的使用者儲存在 mysql 資料庫的 user 表裡

1 use mysql;
2 select user,authentication_string,host from
user;

 

1.3重新命名使用者

1 rename user 'zly'@'localhost' to 'cs'@'localhost';

 

1.4刪除使用者

1 drop user 'cs'@'localhost';

 

1.5修改當前登入使用者密碼

1 set password password=('199808');

 

1.6修改其他使用者密碼

1 set password for 'dc'@'localhost' = password('999999');

 

1.7忘記root密碼的解決辦法

①修改配置檔案,新增配置,使登入mysql不使用授權表

1 vim /etc/my.cnf
2 #新增此行
3 skip-grant-tables

 

②重啟服務

 

③使用update修改root密碼,重新整理資料庫,退出重新登入測試

1 update mysql.user set authentication_string = password('123456') where user='root';
2 flush privileges;

 

④再次修改my.conf配置檔案,註釋掉之前新增的配置命令

 

 

二、資料庫使用者授權

2.1授予許可權

GRANT語句:專門用來設定資料庫使用者的訪問許可權。當指定的使用者名稱不存在時,GRANT語句將會建立新的使用者;當指定的使用者名稱存在時,GRANT 語句用於修改使用者資訊。

1 GRANT 許可權列表 ON 資料庫名.表名 TO '使用者名稱'@'來源地址' [IDENTIFIED BY '密碼'];
  • 許可權列表:用於列出授權使用的各種資料庫操作,以逗號進行分隔,如“select,insert,update”。使用“all”表示所有許可權,可授權執行任何操作。
  • 資料庫名.表名:用於指定授權操作的資料庫和表的名稱,其中可以使用萬用字元“”。例如,使用“kgc.”表示授權操作的物件為 kgc資料庫中的所有表。
  • ‘使用者名稱@來源地址’:用於指定使用者名稱稱和允許訪問的客戶機地址,即誰能連線、能從哪裡連線。來源地址可以是域名、IP 地址,還可以使用“%”萬用字元,表示某個區域或網段內的所有地址,如“%.accp.com”、“192.168.80.%”等。
  • IDENTIFIED BY:用於設定使用者連線資料庫時所使用的密碼字串。在新建使用者時,若省略“IDENTIFIED BY”部分, 則使用者的密碼將為空。

 

2.1.1允許使用者 cs在本地查詢mysql資料庫中所有表的資料記錄,但禁止查詢其他資料庫中的表的記錄。

 

2.1.2測試

1 #登入並檢視庫
2 mysql -ucs -p123456
3 show databases;
4 use mysql;
5 show tables;

 

2.1.3允許使用者wc在所有終端遠端連線mysql,並擁有所有許可權

1 grant all on *.* to 'wc'@'%' identified by '123456';

 

2.2檢視許可權

1 SHOW GRANTS FOR 使用者名稱@來源地址;
2 show grants for 'wc'@'%';

 

2.3撤銷許可權

1 show grants for 'dc'@'localhost';
2 revoke select on mysql.* from 'dc'@'localhost';