關於MySQL許可權分配

2021-04-23 07:46:22 字數 1419 閱讀 8546

關於mysql許可權分配

mysql的許可權系統圍繞著兩個概念:

1:認證->確定使用者是否允許連線資料庫伺服器

2:授權->確定使用者是否擁有足夠的許可權執行查詢請求等。

顯然從上面可知,如果認證不成功的話,哪麼授權肯定是無法進行的。在這裡我們要關注兩個表,分別是在mysql資料庫中user表和db表。

user表在某種程度上是獨一無二的,因為它是唯一乙個在許可權請求的認證和授權階段都起作用的表,也是唯一乙個存數mysql伺服器相關許可權的許可權表。在認證階段,它只是負責為使用者授權訪問mysql伺服器,確定使用者每小時的最大連線數和最大併發數;在授權階段,user確定允許訪問伺服器的使用者是否被賦予了運算元據庫的全域性許可權,確定使用者每小時的最大查詢數和更新數。

db表用於為每個使用者針對每個資料庫賦予許可權。具體的可以檢視db的字段。

使用者和許可權管理命令:

create user :用於建立新的使用者賬戶(從5.0版本開始有這個命令),在建立這個使用者的時候不分配任何許可權,需要在建立之後通過grant命令來給改使用者分配相應的許可權。

eg:create user guest@localhost identified by '123456';

grant select on mydb.* to guest@localhost;

drop user:刪除乙個使用者賬戶(注意在4.1.1版本之前只能刪除沒有任何許可權的賬戶,5.0.2之後可以刪除任何賬戶)

eg:drop user guest;

rename user:可以實現重新命名乙個使用者賬號。

grant:用於管理訪問許可權,也就是給使用者賬號授權。當然它同樣可以建立乙個新的使用者賬戶。

eg:grant select, insert, update, delete on new_db.* to guest@'%' identified by '88888888';

grant 許可權 on 資料庫.表 to 使用者 @ 訪問方式 identified by 密碼

grant select on mydb.* to guest@localhost identified by '123456';

btw:如果需要乙個空密碼或者無密碼的賬戶,必須先用create user命令,然後通過   

grant來分配許可權。如果如下操作:

grant all privileges on mydb.* to visitor@'%' ;而在資料庫user表中沒有先建立visitor 

使用者,則會發生1133錯誤"can't find any matching row in the user table"。grant只能創

有密碼的賬戶。

revoke:刪除乙個賬戶,具體檢視mysql的文件。

MySQL許可權分配

第一招 mysql服務的啟動和停止 net stop mysql net start mysql 第二招 登陸mysql 語法如下 mysql u使用者名稱 p使用者密碼 鍵入命令mysql uroot p,回車後提示你輸入密碼,輸入12345,然後回車即可進入到mysql中了,mysql的提示符是...

MySql許可權分配

mysql.user,mysql.db,mysql.table priv,mysql column priv grant select on mall.to dev 192.168.159.identified by 123 with grant option 建立乙個dev使用者,密碼為123,只...

MySQL許可權分配

1 給乙個資料庫分配唯讀賬號 grant select on bstic to readonly identified by 123456 orgrant select on bstic.to readonly identified by 123456 2 多個資料庫分配唯讀許可權 只能單獨乙個乙個...