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