MySQL新增使用者 刪除使用者 授權及撤銷許可權

2022-06-06 11:45:07 字數 2552 閱讀 1383

mysql> insert into mysql.user(host,user,password) values("localhost","test",password("1234"));

#這樣就建立了乙個名為:test 密碼為:1234 的使用者。

注意:此處的"localhost",是指該使用者只能在本地登入,不能在另外一台機器上遠端登入。如果想遠端登入的話,將"localhost"改為"%",表示在任何一台電腦上都可以登入。也可以指定某台機器(例如192.168.1.10),或某個網段(例如192.168.1.%)可以遠端登入。

授權格式:grant 許可權 on 資料庫.* to 使用者名稱@登入主機 identified by "密碼"; 

2.1 首先為使用者建立乙個資料庫(testdb):

mysql>create database testdb;

2.2 授權test使用者擁有testdb資料庫的所有許可權(某個資料庫的所有許可權):

mysql>grant all privileges on testdb.* to test@localhost identified by '1234';

mysql>flush privileges;//重新整理系統許可權表,即時生效

2.3 如果想指定某庫的部分許可權給某使用者本地操作,可以這樣來寫:

mysql>grant select,update on testdb.* to test@localhost identified by '1234';

mysql>flush privileges; 

2.4  授權test使用者擁有所有資料庫的某些許可權的遠端操作:

mysql>grant select,delete,update,create,drop on *.* to test@"%" identified by "1234";

#test使用者對所有資料庫都有select,delete,update,create,drop 許可權。

2.5 檢視使用者所授予的許可權:

mysql> show grants for test@localhost;

mysql>delete from user where user='test' and host='localhost';

mysql>flush privileges;

刪除賬戶及許可權:>drop user 使用者名稱@'%';

>drop user 使用者名稱@ localhost; 

mysql>update mysql.user set password=password('新密碼') where user="test" and host="localhost";

mysql>flush privileges;

revoke 跟 grant 的語法差不多,只需要把關鍵字 「to」 換成 「from」 即可:

mysql>grant all on *.* to dba@localhost;

mysql>revoke all on *.* from dba@localhost;

6.1 grant, revoke 使用者許可權後,該使用者只有重新連線 mysql 資料庫,許可權才能生效。

6.2. 如果想讓授權的使用者,也可以將這些許可權 grant 給其他使用者,需要選項 "grant option"

mysql>grant select on testdb.* to dba@localhost with grant option;

mysql>grant select on testdb.* to dba@localhost with grant option;

這個特性一般用不到。實際中,資料庫許可權最好由 dba 來統一管理。

補充:

mysql授權表共有5個表:user、db、host、tables_priv和columns_priv。

授權表的內容有如下用途:

user表

user表列出可以連線伺服器的使用者及其口令,並且它指定他們有哪種全域性(超級使用者)許可權。在user表啟用的任何許可權均是全域性許可權,並適用於所有資料庫。例如,如果你啟用了delete許可權,在這裡列出的使用者可以從任何表中刪除記錄,所以在你這樣做之前要認真考慮。

db表

db表列出資料庫,而使用者有許可權訪問它們。在這裡指定的許可權適用於乙個資料庫中的所有表。

host表

host表與db表結合使用在乙個較好層次上控制特定主機對資料庫的訪問許可權,這可能比單獨使用db好些。這個表不受grant和revoke語句的影響,所以,你可能發覺你根本不是用它。

tables_priv表

tables_priv表指定表級許可權,在這裡指定的乙個許可權適用於乙個表的所有列。

columns_priv表

columns_priv表指定列級許可權。這裡指定的許可權適用於乙個表的特定列

MySQL使用者管理 新增使用者 授權 刪除使用者

新增使用者 以root使用者登入資料庫,執行以下命令 create user zhangsan identified by zhangsan 上面的命令建立了使用者zhangsan,密碼是zhangsan。在mysql.user表裡可以檢視到新增使用者的資訊 授權命令格式 grant privile...

MySQL 使用者管理 新增使用者 授權 刪除使用者

不要直接使用root使用者管理應用資料 以root使用者登入資料庫,執行以下命令 create user zhangsan identified by zhangsan 上面的命令建立了使用者zhangsan,密碼是zhangsan.在mysql.user表裡可以檢視到新增使用者的資訊 select...

MySQL 使用者管理 新增使用者 授權 刪除使用者

以root使用者登入資料庫,執行以下命令 create user xixi identified by 123456 上面的命令建立了使用者xixi,密碼是123456。在mysql.user表裡可以檢視到新增使用者的資訊 命令格式 grant privilegescode on dbname.ta...