這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)碛嘘P(guān)怎么分析MySQL 權(quán)限管理,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
成都創(chuàng)新互聯(lián)長期為上千客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為洛浦企業(yè)提供專業(yè)的做網(wǎng)站、成都網(wǎng)站建設(shè),洛浦網(wǎng)站改版等技術(shù)服務(wù)。擁有十余年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。
Mysql 賬戶權(quán)限信息存儲(chǔ)在 mysql 數(shù)據(jù)庫 user、db、host、table_priv、colunms_priv和procs_priv表中,在Mysql 啟動(dòng)時(shí)服務(wù)器將這些數(shù)據(jù)庫表內(nèi)容讀入內(nèi)存中。
Mysql 權(quán)限層級(jí)主要分為: 服務(wù)器、數(shù)據(jù)庫、表、列。按權(quán)限的使用環(huán)境則主要分為:普通權(quán)限、管理員權(quán)限、特殊權(quán)限,其中普通權(quán)限主要應(yīng)用于應(yīng)用程序鏈接數(shù)據(jù)庫,管理員權(quán)限則主要用于服務(wù)器管理。
mysql 權(quán)限列表詳解:
分類 | 權(quán)限 | 描述 | 應(yīng)用層級(jí) |
普通權(quán)限 (應(yīng)用程序) | CREATE | 允許用戶創(chuàng)建數(shù)據(jù)庫或表 | 數(shù)據(jù)庫、表或索引 |
DROP | 允許用戶刪除數(shù)據(jù)庫或表 | 數(shù)據(jù)庫或表 | |
GRANT OPTION | 允許用戶授予權(quán)限 | 數(shù)據(jù)庫、表或保存的程序 | |
ALTER | 允許用戶改變表結(jié)構(gòu) | 表 | |
DELETE | 允許用戶刪除現(xiàn)存表的行 | 表 | |
INDEX | 允許用戶創(chuàng)建、修改表索引 | 表 | |
INSERT | 允許用戶在表中插入新的記錄 | 表 | |
SELECT | 允許用戶查看表記錄 | 表 | |
UPDATE | 允許用戶修改表中現(xiàn)有的記錄 | 表 | |
CREATE VIEW | 允許用戶創(chuàng)建視圖 | 視圖 | |
SHOW VIEW | 允許用戶查看視圖創(chuàng)建語句 | 視圖 | |
ALTER ROUTINE | 允許用戶修改存儲(chǔ)過程、函數(shù) | 保存的程序 | |
CREATE ROUTINE | 允許用戶創(chuàng)建存儲(chǔ)過程、函數(shù) | 保存的程序 | |
EXECUTE | 允許用戶允許以創(chuàng)建的子程序 | 保存的程序 | |
管理員 | FILE | 允許用戶使用select…into outfile、load data infile 將數(shù)據(jù)從文件讀入表或從表讀入文件 | 服務(wù)器主機(jī)上的文件訪問 |
CREATE TEMPORARY TABLES | 允許用戶創(chuàng)建臨時(shí)表 | 服務(wù)器管理 | |
LOCK TABLES | 允許用戶使用LOCK TABLES | 服務(wù)器管理 | |
CREATE USER | 允許用戶使用CREATE USER,DORP USER,RENAME USER,REVOKE ALL PRIVILEGES | 服務(wù)器管理 | |
PROCESS | 允許用戶使用show processlist 查看線程 | 服務(wù)器管理 | |
RELOAD | 允許用戶使用flush 、重載授權(quán)表、清空授權(quán)、主機(jī)、日志等 | 服務(wù)器管理 | |
REPLICATION CLIENT | 允許用戶詢問從屬服務(wù)器或主機(jī)服務(wù)器地址 | 服務(wù)器管理 | |
REPLICATION SLAVE | 用于主從復(fù)制性從屬服務(wù)器(從主服務(wù)器中讀取二進(jìn)制日志文件) | 服務(wù)器管理 | |
SHOW DATABASES | 允許使用show databases 查看所有的數(shù)據(jù)庫列表,沒有這個(gè)權(quán)限,用戶只能看到擁有權(quán)限的數(shù)據(jù)庫 | 服務(wù)器管理 | |
SHUTDOWN | 允許使用mysqladmin shutdown 關(guān)閉mysql服務(wù)器 | 服務(wù)器管理 | |
SUPER | 允許使用change master,kill,purge master logs 和set global 語句,mysqladmin debug 命令,當(dāng)數(shù)據(jù)庫達(dá)到max_connections 允許連接一次 | 服務(wù)器管理 | |
特殊 | all\all perivileges | 授予所有權(quán)限 | 服務(wù)器管理 |
usage | 僅允許用戶登錄,但不授予權(quán)限 | 服務(wù)器管理 |
MySQL 賦予用戶權(quán)限命令的簡(jiǎn)單格式可概括為:
grant 權(quán)限 on 數(shù)據(jù)庫對(duì)象 to 用戶
grant select on testdb.* to common_user@'%' grant insert on testdb.* to common_user@'%' grant update on testdb.* to common_user@'%' grant delete on testdb.* to common_user@'%'
或者,用一條 MySQL 命令來替代:
grant select, insert, update, delete on testdb.* to common_user@'%'
grant 創(chuàng)建、修改、刪除 MySQL 數(shù)據(jù)表結(jié)構(gòu)權(quán)限。
grant create on testdb.* to developer@'192.168.0.%'; grant alter on testdb.* to developer@'192.168.0.%'; grant drop on testdb.* to developer@'192.168.0.%';
grant 操作 MySQL 外鍵權(quán)限。
grant references on testdb.* to developer@'192.168.0.%';grant 操作 MySQL 臨時(shí)表權(quán)限。 grant create temporary tables on testdb.* to developer@'192.168.0.%';grant 操作 MySQL 索引權(quán)限。 grant index on testdb.* to developer@'192.168.0.%';grant 操作 MySQL 視圖、查看視圖源代碼 權(quán)限。 grant create view on testdb.* to developer@'192.168.0.%'; grant show view on testdb.* to developer@'192.168.0.%';
grant 操作 MySQL 存儲(chǔ)過程、函數(shù) 權(quán)限。
grant create routine on testdb.* to developer@'192.168.0.%'; -- now, can show procedure status grant alter routine on testdb.* to developer@'192.168.0.%'; -- now, you can drop a procedure grant execute on testdb.* to developer@'192.168.0.%';
grant all privileges on testdb to dba@'localhost'
其中,關(guān)鍵字 “privileges” 可以省略。
grant all on *.* to dba@'localhost'
1. grant 作用在整個(gè) MySQL 服務(wù)器上:
grant select on *.* to dba@localhost; -- dba 可以查詢 MySQL 中所有數(shù)據(jù)庫中的表。 grant all on *.* to dba@localhost; -- dba 可以管理 MySQL 中的所有數(shù)據(jù)庫
2. grant 作用在單個(gè)數(shù)據(jù)庫上:
grant select on testdb.* to dba@localhost; -- dba 可以查詢 testdb 中的表。
3. grant 作用在單個(gè)數(shù)據(jù)表上:
grant select, insert, update, delete on testdb.orders to dba@localhost;
4. grant 作用在表中的列上:
grant select(id, se, rank) on testdb.apache_log to dba@localhost;
5. grant 作用在存儲(chǔ)過程、函數(shù)上:
grant execute on procedure testdb.pr_add to 'dba'@'localhost' grant execute on function testdb.fn_add to 'dba'@'localhost'
查看當(dāng)前用戶(自己)權(quán)限:
show grants;
查看其他 MySQL 用戶權(quán)限:
show grants for dba@localhost;
revoke 跟 grant 的語法差不多,只需要把關(guān)鍵字 “to” 換成 “from” 即可:
grant all on *.* to dba@localhost; revoke all on *.* from dba@localhost;
1. grant, revoke 用戶權(quán)限后,該用戶只有重新連接 MySQL 數(shù)據(jù)庫,權(quán)限才能生效。
2. 如果想讓授權(quán)的用戶,也可以將這些權(quán)限 grant 給其他用戶,需要選項(xiàng) “grant option“
grant select on testdb.* to dba@localhost with grant option;
這個(gè)特性一般用不到。實(shí)際中,數(shù)據(jù)庫權(quán)限最好由 DBA 來統(tǒng)一管理。
----------------------------------------------------------------------------------------------
授權(quán)命令GRANT 語句的語法如下:
GRANT privileges (columns)
ON what
TO user IDENTIFIEDBY "password"
WITH GRANT OPTION
對(duì)用戶授權(quán)
mysql>grant rights on database.* to user@host identified by "pass";
例1:
增加一個(gè)用戶test1密碼為abc,讓他可以在任何主機(jī)上登錄,并對(duì)所有數(shù)據(jù)庫有查詢、插入、修改、刪除的權(quán)限。
grant select,insert,update,delete on *.* to test1@"%" Identified by "abc";
ON 子句中*.* 說明符的意思是“所有數(shù)據(jù)庫,所有的表”
例2:
增加一個(gè)用戶test2密碼為abc, 讓他只可以在localhost上登錄,并可以對(duì)數(shù)據(jù)庫mydb進(jìn)行查詢、插入、修改、刪除的操作。
grant select,insert,update,delete on mydb.* to test2@localhost identified by "abc";
例子3
增加一個(gè)用戶custom,他能從主機(jī)localhost、server.domain和whitehouse.gov連接。他只想要從 localhost存取bankaccount數(shù)據(jù)庫,從whitehouse.gov存取expenses數(shù)據(jù)庫和從所有3臺(tái)主機(jī)存取customer 數(shù)據(jù)庫。他想要從所有3臺(tái)主機(jī)上使用口令stupid。
為了使用GRANT語句設(shè)置個(gè)用戶的權(quán)限,運(yùn)行這些命令:
shell> mysql --user=root mysql
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
ON bankaccount.* TO custom@localhost IDENTIFIED BY 'stupid';
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
ON expenses.* TO custom@whitehouse.gov IDENTIFIED BY 'stupid';
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
ON customer.* TO custom@'%' IDENTIFIED BY 'stupid';
==============================================
權(quán)限信息用user、db、host、tables_priv和columns_priv表被存儲(chǔ)在mysql數(shù)據(jù)庫中(即在名為mysql的數(shù)據(jù)庫中)。
權(quán)限 列 Context
select Select_priv 表
insert Insert_priv 表
update Update_priv 表
delete Delete_priv 表
index Index_priv 表
alter Alter_priv 表
create Create_priv 數(shù)據(jù)庫、表或索引
drop Drop_priv 數(shù)據(jù)庫或表
grant Grant_priv 數(shù)據(jù)庫或表
references References_priv 數(shù)據(jù)庫或表
reload Reload_priv 服務(wù)器管理
shutdown Shutdown_priv 服務(wù)器管理
process Process_priv 服務(wù)器管理
file File_priv 在服務(wù)器上的文件存取
1.select、insert、update和delete權(quán)限 允許你在一個(gè)數(shù)據(jù)庫現(xiàn)有的表上實(shí)施操作,是基本權(quán)限
2.alter權(quán)限允許你使用ALTER TABLE
3.create和drop權(quán)限允許你創(chuàng)建新的數(shù)據(jù)庫和表,或拋棄(刪除)現(xiàn)存的數(shù)據(jù)庫和表 如果你將mysql數(shù)據(jù)庫的drop權(quán)限授予一個(gè)用戶,該用戶能拋棄存儲(chǔ)了MySQL存取權(quán)限的數(shù)據(jù)庫!
4.grant權(quán)限允許你把你自己擁有的那些權(quán)限授給其他的用戶。
你不能明顯地指定一個(gè)給定用戶應(yīng)該被拒絕存取。即,你不能明顯地匹配一個(gè)用戶并且然后拒絕連接。你不能指定一個(gè)用戶有權(quán)創(chuàng)建立或拋棄一個(gè)數(shù)據(jù)庫中的表,也不能創(chuàng)建或拋棄數(shù)據(jù)庫本身。 可以同時(shí)列出許多被授予的單個(gè)權(quán)限。
例如,如果想讓用戶能讀取和修改已有表的內(nèi)容,但又不允許創(chuàng)建新表或刪除表,可按如下授權(quán):
GRANT SELECT,INSERT,DELETE,UPDATE ON samp_db.* TO 'user'@'%' IDENTIFIEDBY "pass"
以上是我從別的地方拷貝過來后稍作修改的文字,下面自己寫一些需要注意的東西。
上述就是小編為大家分享的怎么分析Mysql 權(quán)限管理了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
網(wǎng)站名稱:怎么分析Mysql權(quán)限管理
網(wǎng)站路徑:http://www.chinadenli.net/article44/jsipee.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)、服務(wù)器托管、App開發(fā)、定制網(wǎng)站、自適應(yīng)網(wǎng)站、響應(yīng)式網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)