授予MySQL用戶權(quán)限的命令
數(shù)據(jù)庫的安全性是我們非常注重的事情,MySQL數(shù)據(jù)庫同樣有自己的安全機(jī)制,用戶必須要通過授予MySQL用戶權(quán)限命令,才可以得到權(quán)限,進(jìn)行操作。
MySQL可以為不同的用戶分配嚴(yán)格的、復(fù)雜的權(quán)限。這些操作大多都可以用SQL指令Grant(分配權(quán)限)和Revoke(回收權(quán)限)來實(shí)現(xiàn)授予MySQL用戶權(quán)限。 Grant可以把指定的權(quán)限分配給特定的用戶,如果這個用戶不存在,則會創(chuàng)建一個用戶。
授予MySQL用戶權(quán)限的命令Grant 常用格式:
grant 權(quán)限1,權(quán)限2,…權(quán)限n on 數(shù)據(jù)庫名稱.表名稱 to 用戶名@用戶地址 identified by ‘連接口令’;
權(quán)限1,權(quán)限2,…權(quán)限n代表select,insert,update,delete,create,drop,index,alter,grant,references,reload,shutdown,process,file等14個權(quán)限。
當(dāng)權(quán)限1,權(quán)限2,…權(quán)限n被all privileges或者all代替,表示賦予用戶全部權(quán)限。
當(dāng)數(shù)據(jù)庫名稱.表名稱被*.*代替,表示賦予用戶操作服務(wù)器上所有數(shù)據(jù)庫所有表的權(quán)限。
用戶地址可以是localhost,也可以是ip地址、機(jī)器名字、域名。也可以用’%'表示從任何地址連接。
‘連接口令’不能為空,否則創(chuàng)建失敗。
比較重要的是priveleges(權(quán)限)。
普通用戶的權(quán)限權(quán)限應(yīng)用于描述
SELECT表,列允許用戶從表中選擇行(記錄)
INSERT表,列允許用戶在表中插入新行
UPDATE表,列允許用戶修改現(xiàn)存表里行中的值
DELETE表允許用戶刪除現(xiàn)存表的行
INDEX表允許用戶創(chuàng)建和拖動特定表索引
ALTER表允許用戶改變現(xiàn)存表的結(jié)構(gòu)。例如,可添加列、重命名列或表、修改列的數(shù)據(jù)類型
CREATE數(shù)據(jù)庫,表允許用戶創(chuàng)建新數(shù)據(jù)庫或表。如果在GRANT中指定了一個特定的數(shù)據(jù)庫或表,他們只能夠創(chuàng)建該數(shù)據(jù)庫或表,即他們必須首先刪除(Drop)它
DROP數(shù)據(jù)庫,表允許用戶拖動(刪除)數(shù)據(jù)庫或表
管理員權(quán)限權(quán)限描述
CREATE TEMPORARY TABLES允許管理員在CREATE TABLE語句中使用TEMPORARY關(guān)鍵字
FILE允許將數(shù)據(jù)從文件讀入表,或從表讀入文件
LOCK TABLES允許使用LOCK TABLES語句
PROCESS允許管理員查看屬于所有用戶的服務(wù)器進(jìn)程
RELOAD允許管理員重新載入授權(quán)表、清空授權(quán)、主機(jī)、日志和表格
REPLICATION CLIENT允許在復(fù)制主機(jī)(Master)和從機(jī)(Slave)上使用SHOW STATUS
REPLICATION SLAVE允許復(fù)制從服務(wù)器連接到主服務(wù)器
SHOW DATABASES允許使用SHOW DATABASES語句查看所有的數(shù)據(jù)庫列表。沒有這個權(quán)限,用戶只能看到他們能夠看到的數(shù)據(jù)庫
SHUTDOWN允許管理員關(guān)閉MySQL服務(wù)器
SUPER允許管理員關(guān)閉屬于任何用戶的線程
特別的權(quán)限權(quán)限描述
ALL(或ALL PREVILEGES)授予所有權(quán)限
USAGE不授予權(quán)限。這將創(chuàng)建一個用戶并允許他登錄,但不允許其他操作,如update/select 等。
【編輯推薦】