mysql使用者和許可權
使用者的建立
方法一:
create user lxm;
set password for lxm=PASSWORD('123456');
alter user lxm password expire; 設定使用者密碼過期。
select user, host, password from mysql.user; 查詢賬號資訊
方法二:
在授權時會默然建立使用者
grant select on test.table1 to lxm@192.168.2.154 identified by '123456';
方法三:
直接修改user表,修改完後記得flush privileges。
insert into mysql.user(host,user,password,ssl_cipher,x509_issuer,x509_subject) values ('192.168.2.154','lxm','123456','','','');
update mysql.user set password=password('lxm') where user='lxm' and host='%'; 修改使用者密碼
使用者的刪除:
drop user lxm@192.168.2.154, lxm2@192.168.2.154, lxm3@192.168.2.154; 可以一次刪除多個使用者
drop user不會自動中止已連線的使用者會話。
=========================================================================
許可權
mysql中許可權的粒度由粗到細分別是全域性,資料庫,表,列,程式。可以用一句話來概括:分配某個使用者從某臺機器連線進來訪問某個資料庫下的某張表的某個列的某部分記錄的許可權。
1、全域性級別
與全域性相關的許可權資訊記錄在mysql.user表中。這個全域性許可權不是指擁有所有的許可權,它具體指的是擁有該MYSQL伺服器所有資料庫物件的許可權。
2、資料庫級別
與資料庫級別的許可權資訊記錄在mysql.db表中。
3、表物件級別
表物件的授權資訊記錄在mysql.tables_priv字典表中。
4、列級別
列級許可權是mysql許可權體系中的最細粒度。許可權資訊記錄在mysql.column_priv表中。
grant select (col1) on test.table1 to lxm; 授予使用者lxm查詢test.table1表中col1列的許可權。
grant insert (col1) on test.table1 to lxm; 授予使用者lxm向test.table1表中col1列新增值的許可權。
5、程式
mysql中的程式指procedure和function兩類物件。對已存在的程式,可以授予執行(EXECUTE),修改(ALTER ROUTINE),授予(GRANT)許可權。這些許可權資訊記錄在表mysql.procs_priv中。
查詢使用者許可權:
show grants for lxm@’192.168.2.154; 查詢使用者lxm所擁有的許可權
show grants; 查詢當前使用者的所有許可權
回收許可權:
revoke select on test.table1 from lxm@192.168.2.154;
revoke all privileges,grant option from user; 回收使用者的所有許可權
許可權變更何時生效:
如果是用mysql提供的命令來執行修改,比如GRANT,REVOKE,SET PASSWORD,RENAME USER,則許可權變更立即生效。
如果是手動修改字典表的方式,比如INSERT,UPDATE,DELETE,則需要重啟mysql服務,或者手動觸發授權表(GRANT TABLES)重新裝載到記憶體中,即flush privileges。
許可權變更對客戶端的影響:
表或者列粒度的許可權改變將在客戶端執行下一次操作時生效。
資料庫級別的許可權將在客戶端切換資料庫時生效。
全域性許可權和密碼修改,當客戶端下一次連線時生效。
在LINUX/UNIX系統下,使用mysql命令列工具執行的所有操作,都會被記錄到一個名為.mysql_history的檔案中。該檔案預設儲存在當前使用者的根目錄下。可以透過修改引數MYSQL_HISTFILE來更改路徑。
許可權型別列表:
create user 可以執行create user,drop user,rename user,revoke all privileges語句
create 建立資料庫或者表物件 *擁有create許可權的使用者只能建立和檢視自己新建的資料庫或表物件,而無法刪除。
create view 可以建立/修改檢視
select 查詢
insert 執行insert語句
update 允許執行update操作
delete 可以執行delete語句
drop 可以刪除表/檢視/資料庫
alter 執行alter table操作
index 建立或者刪除索引
create tablespace 建立,修改或者刪除表空間以及日誌檔案組
create temporary tables 透過執行create temporary table語句建立臨時表
lock tables 對擁有select許可權的表物件執行lock tables
trigger 允許建立或者刪除觸發器
create routine 建立儲存過程和函式
alter routine 修改或者刪除儲存過程和函式
execute 允許使用者可以執行儲存程式
replication client 允許使用者連線複製環境中的master/slave
replication slave 允許複製環境的slave端從master端讀取資料
grant option 允許將授予的許可權再由該使用者授予給其他使用者
all privileges 授予所有除grant option外的許可權
usage 指沒有許可權(no privileges),但是還是可以登入的。該許可權是預設給予的,無法被回收。
event 允許使用event物件
file 允許使用者讀寫檔案
proxy 可以使用proxy
注:all privileges和grant option兩類許可權比較特殊,在授予和回收時都不能與其他許可權同時操作。
max_queries_per_hour 使用者每小時執行的查詢語句數量
max_update_per_hour 使用者每小時執行的更新語句數量
max_connections_per_hour 使用者每小時可以連線的最大次數
max_user_connections 使用者同時連線伺服器的數量
其他:
在表級物件你可以賦予的許可權有select、insert、update、delete、create、drop、grant option、index、以及alter。
execution、file、process、reload、replication client、replication slave,show databases,shutdown,以及super這些許可權都是管理許可權,只能被全域性賦予,即用on *.*的方式。
方法一:
create user lxm;
set password for lxm=PASSWORD('123456');
alter user lxm password expire; 設定使用者密碼過期。
select user, host, password from mysql.user; 查詢賬號資訊
方法二:
在授權時會默然建立使用者
grant select on test.table1 to lxm@192.168.2.154 identified by '123456';
方法三:
直接修改user表,修改完後記得flush privileges。
insert into mysql.user(host,user,password,ssl_cipher,x509_issuer,x509_subject) values ('192.168.2.154','lxm','123456','','','');
update mysql.user set password=password('lxm') where user='lxm' and host='%'; 修改使用者密碼
使用者的刪除:
drop user lxm@192.168.2.154, lxm2@192.168.2.154, lxm3@192.168.2.154; 可以一次刪除多個使用者
drop user不會自動中止已連線的使用者會話。
=========================================================================
許可權
mysql中許可權的粒度由粗到細分別是全域性,資料庫,表,列,程式。可以用一句話來概括:分配某個使用者從某臺機器連線進來訪問某個資料庫下的某張表的某個列的某部分記錄的許可權。
1、全域性級別
與全域性相關的許可權資訊記錄在mysql.user表中。這個全域性許可權不是指擁有所有的許可權,它具體指的是擁有該MYSQL伺服器所有資料庫物件的許可權。
2、資料庫級別
與資料庫級別的許可權資訊記錄在mysql.db表中。
3、表物件級別
表物件的授權資訊記錄在mysql.tables_priv字典表中。
4、列級別
列級許可權是mysql許可權體系中的最細粒度。許可權資訊記錄在mysql.column_priv表中。
grant select (col1) on test.table1 to lxm; 授予使用者lxm查詢test.table1表中col1列的許可權。
grant insert (col1) on test.table1 to lxm; 授予使用者lxm向test.table1表中col1列新增值的許可權。
5、程式
mysql中的程式指procedure和function兩類物件。對已存在的程式,可以授予執行(EXECUTE),修改(ALTER ROUTINE),授予(GRANT)許可權。這些許可權資訊記錄在表mysql.procs_priv中。
查詢使用者許可權:
show grants for lxm@’192.168.2.154; 查詢使用者lxm所擁有的許可權
show grants; 查詢當前使用者的所有許可權
回收許可權:
revoke select on test.table1 from lxm@192.168.2.154;
revoke all privileges,grant option from user; 回收使用者的所有許可權
許可權變更何時生效:
如果是用mysql提供的命令來執行修改,比如GRANT,REVOKE,SET PASSWORD,RENAME USER,則許可權變更立即生效。
如果是手動修改字典表的方式,比如INSERT,UPDATE,DELETE,則需要重啟mysql服務,或者手動觸發授權表(GRANT TABLES)重新裝載到記憶體中,即flush privileges。
許可權變更對客戶端的影響:
表或者列粒度的許可權改變將在客戶端執行下一次操作時生效。
資料庫級別的許可權將在客戶端切換資料庫時生效。
全域性許可權和密碼修改,當客戶端下一次連線時生效。
許可權型別列表:
create user 可以執行create user,drop user,rename user,revoke all privileges語句
create 建立資料庫或者表物件 *擁有create許可權的使用者只能建立和檢視自己新建的資料庫或表物件,而無法刪除。
create view 可以建立/修改檢視
select 查詢
insert 執行insert語句
update 允許執行update操作
delete 可以執行delete語句
drop 可以刪除表/檢視/資料庫
alter 執行alter table操作
index 建立或者刪除索引
create tablespace 建立,修改或者刪除表空間以及日誌檔案組
create temporary tables 透過執行create temporary table語句建立臨時表
lock tables 對擁有select許可權的表物件執行lock tables
trigger 允許建立或者刪除觸發器
create routine 建立儲存過程和函式
alter routine 修改或者刪除儲存過程和函式
execute 允許使用者可以執行儲存程式
replication client 允許使用者連線複製環境中的master/slave
replication slave 允許複製環境的slave端從master端讀取資料
grant option 允許將授予的許可權再由該使用者授予給其他使用者
all privileges 授予所有除grant option外的許可權
usage 指沒有許可權(no privileges),但是還是可以登入的。該許可權是預設給予的,無法被回收。
event 允許使用event物件
file 允許使用者讀寫檔案
proxy 可以使用proxy
注:all privileges和grant option兩類許可權比較特殊,在授予和回收時都不能與其他許可權同時操作。
max_queries_per_hour 使用者每小時執行的查詢語句數量
max_update_per_hour 使用者每小時執行的更新語句數量
max_connections_per_hour 使用者每小時可以連線的最大次數
max_user_connections 使用者同時連線伺服器的數量
其他:
在表級物件你可以賦予的許可權有select、insert、update、delete、create、drop、grant option、index、以及alter。
execution、file、process、reload、replication client、replication slave,show databases,shutdown,以及super這些許可權都是管理許可權,只能被全域性賦予,即用on *.*的方式。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28497416/viewspace-2126174/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- mysql使用者許可權MySql
- mysql 使用者管理和許可權設定MySql
- mysql使用者許可權管理MySql
- mysql 新增、刪除使用者和許可權分配MySql
- MySQL-03.使用者管理和許可權管理MySql
- MySQL 使用者及許可權管理?MySql
- MySQL使用者及許可權管理MySql
- mysql匯出使用者許可權MySql
- 配置Mysql使用者許可權命令MySql
- MySQL使用者與許可權管理MySql
- MySql查詢使用者許可權MySql
- mysql許可權MySql
- MySQL 許可權MySql
- MYSQL學習筆記13: DCL許可權控制(使用者許可權操作)MySql筆記
- 入門MySQL——使用者與許可權MySql
- MySQL入門--使用者與許可權MySql
- mysql 8.0.21使用者及許可權操作MySql
- MySQL 使用者管理與許可權管理MySql
- MySQL資料庫許可權體系入門(3)---管理使用者許可權MySql資料庫
- Mysql——許可權管理MySql
- Mysql 許可權管理MySql
- MySQL許可權管理MySql
- Oracle 使用者、物件許可權、系統許可權Oracle物件
- mysql 給了使用者所有許可權ALL PRIVILEGES,但是該使用者沒有grant許可權MySql
- mysql 使用者及許可權管理 小結MySql
- MySQL使用者許可權控制一例MySql
- 【Mysql】給普通使用者mysqldump的許可權MySql
- MySQL之許可權管理和備份MySql
- 選單許可權表sqlite和mysqlSQLiteMySql
- 使用者許可權繼承另一使用者的許可權繼承
- linux 檔案許可權 s 許可權和 t 許可權解析Linux
- 【許可權管理】Oracle中檢視、回收使用者許可權Oracle
- mysql許可權參考MySql
- MySQL許可權問題MySql
- MySQL reload許可權MySql
- MySQL許可權系統MySql
- [玄月]MySQL許可權MySql
- MySQL 許可權詳解MySql