Mysql用戶受權管理

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';
相關文章
相關標籤/搜索