Mysql 涉及用戶權限的語句有GRANT,REVOKEmysql
經過Mysql自帶的help文檔能夠查看相應的語法:sql
GRANT數據庫
GRANT priv_type,...... ON [obj_type] priv_level TO user_specification [WITH with_option ...]bash
priv_type對應的有:
ALL | ALTER | ALTER ROUTINE | CREATE | CREATE ROUTINE | CREATE TEMPORARY TABLES | CREATE USER | CREATE VIEW | DELETE | DROP | EXECUTE | FILE | INDEX | INSERT | LOCK TABLES | PROCESS | REFERENCES | RELOAD | REPLICATION CLIENT | REPLICATION SLAVE | SELECT | SHOW DATABASES | SHOW VIEW | SHUTDOWN | SUPER | UPDATE | USAGE服務器
權限ide |
意義debug |
ALL [PRIVILEGES]日誌 |
設置除GRANT OPTION以外的全部簡單權限事件 |
ALTERip |
容許使用ALTER TABLE |
ALTER ROUTINE |
更改或取消已存儲的子程序 |
CREATE |
容許使用CREATE TABLE |
CREATE ROUTINE |
建立已存儲的子程序 |
CREATE TEMPORARY TABLES |
容許使用CREATE TEMPORARY TABLE |
CREATE USER |
容許使用CREATE USER, DROP USER, RENAME USER和REVOKE ALL PRIVILEGES。 |
CREATE VIEW |
容許使用CREATE VIEW |
DELETE |
容許使用DELETE |
DROP |
容許使用DROP TABLE |
EXECUTE |
容許用戶運行已存儲的子程序 |
FILE |
容許使用SELECT...INTO OUTFILE和LOAD DATA INFILE |
INDEX |
容許使用CREATE INDEX和DROP INDEX |
INSERT |
容許使用INSERT |
LOCK TABLES |
容許對您擁有SELECT權限的表使用LOCK TABLES |
PROCESS |
容許使用SHOW FULL PROCESSLIST |
REFERENCES |
未被實施 |
RELOAD |
容許使用FLUSH |
REPLICATION CLIENT |
容許用戶詢問從屬服務器或主服務器的地址 |
REPLICATION SLAVE |
用於複製型從屬服務器(從主服務器中讀取二進制日誌事件) |
SELECT |
容許使用SELECT |
SHOW DATABASES |
SHOW DATABASES顯示全部數據庫 |
SHOW VIEW |
容許使用SHOW CREATE VIEW |
SHUTDOWN |
容許使用mysqladmin shutdown |
SUPER |
容許使用CHANGE MASTER, KILL, PURGE MASTER LOGS和SET GLOBAL語句,mysqladmin debug命令;容許您鏈接(一次),即便已達到max_connections。 |
UPDATE |
容許使用UPDATE |
USAGE |
「無權限」的同義詞 |
GRANT OPTION |
object_type對應的有:
TABLE | FUNCTION | PROCEDURE
priv_level對應的有:
* | *.* | db_name.* | db_name.tbl_name | tbl_name | db_name.routine_name
user_specification對應內容爲:
[ IDENTIFIED BY [PASSWORD] 'password' | IDENTIFIED WITH auth_plugin [AS 'auth_string'] ]
ssl_option對應的有:
SSL | X509 | CIPHER 'cipher' | ISSUER 'issuer' | SUBJECT 'subject'
with_option對應內容爲:
GRANT OPTION | MAX_QUERIES_PER_HOUR count | MAX_UPDATES_PER_HOUR count | MAX_CONNECTIONS_PER_HOUR count | MAX_USER_CONNECTIONS count
舉例:
mysql> create database testdb; mysql> grant all privileges on testdb.* to test@'localhost' identified by 'testdb';
mysql> create user test@'localhost' identified by 'testdb';
經過上述方式,用戶被建立在mysql.user表中。
mysql> select host,user,authentication_string from mysql.user where user='test';
對於當前用戶受權狀況能夠經過如下語句查詢
mysql> show grants; mysql> show grants for test@'localhost'; mysql> show grants for current_user; mysql> show grants for current_user();
REVOKE
REOVKE priv_type,...... ON [obj_type] priv_level FROM user_specification
舉例:
mysql> revoke all on testdb.* from test@‘127.0.0.1’
刪除user表中定義的用戶
mysql> drop user 'dbd'@'127.0.0.1';