MYSQL的GRANT命令詳解

2021-06-08 16:26:05 字數 4528 閱讀 2679

本文例項,執行於 mysql 5.0 及以上版本。

mysql 賦予使用者許可權命令的簡單格式可概括為:

grant

許可權 on

資料庫物件

to使用者

一、grant 普通資料使用者,查詢、插入、更新、刪除 資料庫中所有表資料的權利。

grant

select

ontestdb.*to

common_user@'%

'grant

insert

ontestdb.*to

common_user@'%

'grant

update

ontestdb.*to

common_user@'%

'grant

delete

ontestdb.*to

common_user@'%

'

或者,用一條 mysql 命令來替代:

grant

select

, insert

, update

, delete

ontestdb.*to

common_user@'%

'

二、grant 資料庫開發人員,建立表、索引、檢視、儲存過程、函式。。。等許可權。

grant 建立、修改、刪除 mysql 資料表結構許可權。

grant

create

ontestdb.*to

developer@

'192.168.0.%';

grant

alter

ontestdb.*to

developer@

'192.168.0.%';

grant

drop

ontestdb.*to

developer@

'192.168.0.%';

grant 操作 mysql 外來鍵許可權。

grant

references

ontestdb.*to

developer@

'192.168.0.%';

grant 操作 mysql 臨時表許可權。

grant

create

temporary

tables

ontestdb.*to

developer@

'192.168.0.%';

grant 操作 mysql 索引許可權。

grant

index

ontestdb.*to

developer@

'192.168.0.%';

grant 操作 mysql 檢視、檢視檢視源** 許可權。

grant

create

view

ontestdb.*to

developer@

'192.168.0.%';

grant

show

view

ontestdb.*to

developer@

'192.168.0.%';

grant 操作 mysql 儲存過程、函式 許可權。

grant

create

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 資料庫的許可權。

grant

allprivileges

ontestdb

todba@

'localhost

'

其中,關鍵字 「privileges」 可以省略。

四、grant 高階 dba 管理 mysql 中所有資料庫的許可權。

grant

allon*.

*todba@

'localhost

'

五、mysql grant 許可權,分別可以作用在多個層次上。

1. grant 作用在整個 mysql 伺服器上:

grant

selecton*

.*todba

@localhost

; --

dba 可以查詢 mysql 中所有資料庫中的表。

grant

allon*.

*todba@localhost

; --

dba 可以管理 mysql 中的所有資料庫

2. grant 作用在單個資料庫上:

grant

select

ontestdb.*to

dba@localhost

; --

dba 可以查詢 testdb 中的表。

3. grant 作用在單個資料表上:

grant

select

, insert

, update

, delete

ontestdb.orders

todba

@localhost

;

這裡在給乙個使用者授權多張表時,可以多次執行以上語句。例如:

grant

select

(user_id

,username)

onsmp.users

tomo_user@'%

'identified by'

123345';

grant

select

onsmp.mo_sms

tomo_user@'%

'identified by'

123345';

4. grant 作用在表中的列上:

grant

select

(id, se, rank)

ontestdb.apache_log

todba

@localhost

;

5. grant 作用在儲存過程、函式上:

grant

execute

onprocedure

testdb.pr_add to'

dba'@'

localhost

'grant

execute

onfunction

testdb.fn_add to'

dba'@'

localhost

'

六、檢視 mysql 使用者許可權

檢視當前使用者(自己)許可權:

show grants;

檢視其他 mysql 使用者許可權:

show grants 

fordba

@localhost

;

七、撤銷已經賦予給 mysql 使用者許可權的許可權。

revoke 跟 grant 的語法差不多,只需要把關鍵字 「to」 換成 「from」 即可:

grant

allon*.

*todba@localhost

;revoke

allon*.

*from

dba@localhost

;

八、mysql grant、revoke 使用者許可權注意事項

1. grant, revoke 使用者許可權後,該使用者只有重新連線 mysql 資料庫,許可權才能生效。

2. 如果想讓授權的使用者,也可以將這些許可權 grant 給其他使用者,需要選項 「grant option「

grant

select

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...