MySQL 數據庫權限簡單管理

mysql 數據庫授權
授權命令GRANT 語句的語法如下:
GRANT privileges (columns)
ON what
TO user IDENTIFIEDBY “password”
WITH GRANT OPTION ;
FLUSH PRIVILEGES;

一、普通用戶授權

查詢、插入、更新、刪除:

GRANT select ON *.* to username@'%';
GRANT insert ON *.* to username@'%';
GRANT update ON *.* to username@'%';
GRANT delete ON *.* to username@'%';

用一條命令來替代:

GRANT select, insert, update, delete ON testdb.* to username@'%';

管理某個MySQL數據庫權限:

GRANT all privileges ON testdb to username@'localhost';
FLUSH PRIVILEGES; 

二、高級DBA管理MySQL中所有數據庫的權限:

GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost' IDENTIFIED BY 'passwd' WITH GRANT OPTION;
FLUSH PRIVILEGES; 

三、查看 MySQL 用戶權限

查看當前用戶權限:

show grants;

查看其他用戶權限:

show grants for username@localhost;

四、撤銷用戶權限:

revoke all ON *.* from username@localhost;
FLUSH PRIVILEGES; 

五、實例操作

1.增加用戶test1

密碼爲passwd, 讓他只可以在localhost上登錄,並可以對數據庫mydb進行查詢、插入、修改、刪除的操作。

GRANT select,insert,update,delete ON mydb.* to test2@localhost identified by "passwd"; 
FLUSH PRIVILEGES; 

2.增加用戶test2

密碼爲passwd,可以在任何主機上登錄,並對所有數據庫有查詢、插入、修改、刪除的權限。

GRANT select,insert,update,delete ON *.* to test1@'%' Identified by "passwd"; 
FLUSH PRIVILEGES; 

3.增加用戶test3

密碼爲passwd,僅在172.27.11.222主機上登錄,並對所有數據庫有查詢、插入、修改、刪除的權限。

GRANT select,insert,update,delete ON *.* to test1@'172.27.11.222' Identified by "passwd"; 
FLUSH PRIVILEGES; 

權限說明:

1.select、insert、update和delete權限允許你在一個數據庫現有的表上實施操作,是基本權限
2.alter權限允許你使用ALTER TABLE
3.create和drop權限允許你創建新的數據庫和表,或拋棄(刪除)現存的數據庫和表,如果將mysql數據庫的drop權限授予一個用戶,該用戶能拋棄存儲了MySQL存取權限的數據庫!
4.grant權限允許你把你自己擁有的那些權限授給其他的用戶。

例如:
用戶能讀取和修改已有表的內容,不允許創建新表或刪除表,可按如下授權:
GRANT SELECT,INSERT,DELETE,UPDATE ON test_db.* TO ‘user’@’%’ IDENTIFIEDBY “pass”

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表指定列級權限。這裏指定的權限適用於一個表的特定列。

發佈了91 篇原創文章 · 獲贊 132 · 訪問量 53萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章