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';