本文例項,執行於 mysql 5.0 及以上版本。
mysql 賦予使用者許可權命令的簡單格式可概括為:
grant許可權 on
資料庫物件
to使用者
一、grant 普通資料使用者,查詢、插入、更新、刪除 資料庫中所有表資料的權利。
grantselect
ontestdb.*to
common_user@'%
'grant
insert
ontestdb.*to
common_user@'%
'grant
update
ontestdb.*to
common_user@'%
'grant
delete
ontestdb.*to
common_user@'%
'
或者,用一條 mysql 命令來替代:
grantselect
, insert
, update
, delete
ontestdb.*to
common_user@'%
'
二、grant 資料庫開發人員,建立表、索引、檢視、儲存過程、函式。。。等許可權。
grant 建立、修改、刪除 mysql 資料表結構許可權。
grantcreate
ontestdb.*to
developer@
'192.168.0.%';
grant
alter
ontestdb.*to
developer@
'192.168.0.%';
grant
drop
ontestdb.*to
developer@
'192.168.0.%';
grant 操作 mysql 外來鍵許可權。
grantreferences
ontestdb.*to
developer@
'192.168.0.%';
grant 操作 mysql 臨時表許可權。
grantcreate
temporary
tables
ontestdb.*to
developer@
'192.168.0.%';
grant 操作 mysql 索引許可權。
grantindex
ontestdb.*to
developer@
'192.168.0.%';
grant 操作 mysql 檢視、檢視檢視源** 許可權。
grantcreate
view
ontestdb.*to
developer@
'192.168.0.%';
grant
show
view
ontestdb.*to
developer@
'192.168.0.%';
grant 操作 mysql 儲存過程、函式 許可權。
grantcreate
routine
ontestdb.*to
developer@
'192.168.0.%';
--now, can show procedure status
grant
alter
routine
ontestdb.*to
developer@
'192.168.0.%';
--now, you can drop a procedure
grant
execute
ontestdb.*to
developer@
'192.168.0.%';
三、grant 普通 dba 管理某個 mysql 資料庫的許可權。
grantallprivileges
ontestdb
todba@
'localhost
'
其中,關鍵字 「privileges」 可以省略。
四、grant 高階 dba 管理 mysql 中所有資料庫的許可權。
grantallon*.
*todba@
'localhost
'
五、mysql grant 許可權,分別可以作用在多個層次上。
1. grant 作用在整個 mysql 伺服器上:
grantselecton*
.*todba
@localhost
; --
dba 可以查詢 mysql 中所有資料庫中的表。
grant
allon*.
*todba@localhost
; --
dba 可以管理 mysql 中的所有資料庫
2. grant 作用在單個資料庫上:
grantselect
ontestdb.*to
dba@localhost
; --
dba 可以查詢 testdb 中的表。
3. grant 作用在單個資料表上:
grantselect
, insert
, update
, delete
ontestdb.orders
todba
@localhost
;
這裡在給乙個使用者授權多張表時,可以多次執行以上語句。例如:
grantselect
(user_id
,username)
onsmp.users
tomo_user@'%
'identified by'
123345';
grant
select
onsmp.mo_sms
tomo_user@'%
'identified by'
123345';
4. grant 作用在表中的列上:
grantselect
(id, se, rank)
ontestdb.apache_log
todba
@localhost
;
5. grant 作用在儲存過程、函式上:
grantexecute
onprocedure
testdb.pr_add to'
dba'@'
localhost
'grant
execute
onfunction
testdb.fn_add to'
dba'@'
localhost
'
六、檢視 mysql 使用者許可權
檢視當前使用者(自己)許可權:
show grants;
檢視其他 mysql 使用者許可權:
show grantsfordba
@localhost
;
七、撤銷已經賦予給 mysql 使用者許可權的許可權。
revoke 跟 grant 的語法差不多,只需要把關鍵字 「to」 換成 「from」 即可:
grantallon*.
*todba@localhost
;revoke
allon*.
*from
dba@localhost
;
八、mysql grant、revoke 使用者許可權注意事項
1. grant, revoke 使用者許可權後,該使用者只有重新連線 mysql 資料庫,許可權才能生效。
2. 如果想讓授權的使用者,也可以將這些許可權 grant 給其他使用者,需要選項 「grant option「
grantselect
ontestdb.*to
dba@localhost
with
grant
option
;
這個特性一般用不到。實際中,資料庫許可權最好由 dba 來統一管理。
更多詳解,請看
mysql中授權命令grant用法詳解
mysql中可以給你乙個使用者授予如select,insert,update,delete等其中的乙個或者多個許可權,主要使用grant命令,用法格式為 grant 許可權 on 資料庫物件 to 使用者 一 grant 普通資料使用者,查詢 插入 更新 刪除 資料庫中所有表資料的權利。grant ...
MySQL的 Grant命令許可權分配
mysql 賦予使用者許可權命令的簡單格式可概括為 grant 許可權 on 資料庫物件 to 使用者 一 grant 普通資料使用者,查詢 插入 更新 刪除 資料庫中所有表資料的權利。grant select on testdb.to common user grant insert on tes...
mysql的grant許可權
通過命令 show privileges 可以檢視 grant 許可權 on 資料庫物件 to 使用者 grant select on testdb.to common user grant insert on testdb.to common user grant update on testdb...