中文亚洲爆乳AV无码专区_亚洲成AV人片在线观看天堂无_菠萝蜜视频在线观看_欧美综合天天夜夜久久_粉嫩av观看成人网站_亚洲精品无码午夜福利中文字幕_女人被弄到高潮叫床免_VIDEOS日本多毛HD护士_日韩欧美成人免费观看

首頁 > 編程 > PHP > 正文

MySQL用戶管理

2019-09-08 23:11:14
字體:
來源:轉載
供稿:網友

  MySQL管理員應該知道如何設置MySQL用戶賬號,指出哪個用戶可以連接服務器,從哪里連接,連接后能做什么。MySQL 3.22.11開始引入兩條語句使得這項工作更容易做:GRANT語句創建MySQL用戶并指定其權限,而REVOKE語句刪除權限。兩條語句扮演了mysql數據庫的前端角色,并提供與直接操作這些表的內容不同的另一種方法。CREATE和REVOKE語句影響4個表:授權表

內容

user 能連接服務器的用戶以及他們擁有的任何全局權限

db 數據庫級權限

tables_priv 表級權限

columns_priv 列級權限

還有第5個授權表(host),但它不受GRANT和REVOKE的影響。

當你對一個用戶發出一條GRANT語句時,在user表中為該用戶創建一條記錄。如果語句指定任何全局權限(管理權限或適用于所有數據庫的權限),這些也記錄在user表中。如果你指定數據庫、表和列級權限,他們被分別記錄在db、tables_priv和columns_priv表中。

用GRANT和REVOKE比直接修改授權表更容易些,然而,建議你閱讀一下《MySQL安全性指南》。這些表異常重要,而且作為一名管理員,你應該理解它們如何超越GRANT和REVOKE語句的功能水平。

在下面的章節中,我們將介紹如何設置MySQL用戶賬號并授權。我們也涉及如何撤權和從授權表中刪除用戶。

你可能也想考慮使用mysqlaccess和mysql_setpermission腳本,它是MySQL分發的一部分,它們是Perl腳本,提供GRANT語句的另一種選擇設置用戶賬號。mysql_setpermission需要安裝DBI支持。

1 創建用戶并授權

GRANT語句的語法看上去像這樣:

GRANT privileges (columns) ON what TO user IDENTIFIED BY "password" WITH GRANT OPTION 

要使用該語句,你需要填寫下列部分:

privileges

授予用戶的權限,下表列出可用于GRANT語句的權限指定符:

權限指定符

權限允許的操作

ALTER 修改表和索引

CREATE 創建數據庫和表

DELETE 刪除表中已有的記錄

DROP 拋棄(刪除)數據庫和表

INDEX 創建或拋棄索引

INSERT 向表中插入新行

REFERENCE 未用

SELECT 檢索表中的記錄

UPDATE 修改現存表記錄

FILE 讀或寫服務器上的文件

PROCESS 查看服務器中執行的線程信息或殺死線程

RELOAD 重載授權表或清空日志、主機緩存或表緩存。

SHUTDOWN 關閉服務器

ALL 所有;ALL PRIVILEGES同義詞

USAGE 特殊的“無權限”權限

上表顯示在第一組的權限指定符適用于數據庫、表和列,第二組數管理權限。一般,這些被相對嚴格地授權,因為它們允許用戶影響服務器的操作。第三組權限特殊,ALL意味著“所有權限”,UASGE意味著無權限,即創建用戶,但不授予權限。

columns

權限運用的列,它是可選的,并且你只能設置列特定的權限。如果命令有多于一個列,應該用逗號分開它們。

what

權限運用的級別。權限可以是全局的(適用于所有數據庫和所有表)、特定數據庫(適用于一個數據庫中的所有表)或特定表的。可以通過指定一個columns字句是權限是列特定的。

user

權限授予的用戶,它由一個用戶名和主機名組成。在MySQL中,你不僅指定誰能連接,還有從哪里連接。這允許你讓兩個同名用戶從不同地方連接。MySQL讓你區分他們,并彼此獨立地賦予權限。

MySQL中的一個用戶名就是你連接服務器時指定的用戶名,該名字不必與你的Unix登錄名或Windows名聯系起來。缺省地,如果你不明確指定一個名字,客戶程序將使用你的登錄名作為MySQL用戶名。這只是一個約定。你可以在授權表中將該名字改為nobody,然后以nobody連接執行需要超級用戶權限的操作。

password

賦予用戶的口令,它是可選的。如果你對新用戶沒有指定IDENTIFIED BY子句,該用戶不賦給口令(不安全)。對現有用戶,任何你指定的口令將代替老口令。如果你不指定口令,老口令保持不變,當你用IDENTIFIED BY時,口令字符串用改用口令的字面含義,GRANT將為你編碼口令,不要象你用SET PASSWORD 那樣使用password()函數。

WITH GRANT OPTION子句是可選的。如果你包含它,用戶可以授予權限通過GRANT語句授權給其它用戶。你可以用該子句給與其它用戶授權的能力。

用戶名、口令、數據庫和表名在授權表記錄中是大小寫敏感的,主機名和列名不是。

一般地,你可以通過詢問幾個簡單的問題來識別GRANT語句的種類:

誰能連接,從那兒連接?

用戶應該有什么級別的權限,他們適用于什么?

用戶應該允許管理權限嗎?

下面就討論一些例子。

1.1 誰能連接,從那兒連接?

你可以允許一個用戶從特定的或一系列主機連接。有一個極端,如果你知道降職從一個主機連接,你可以將權限局限于單個主機:

GRANT ALL ON samp_db.* TO boris@localhost IDENTIFIED BY "ruby"GRANT ALL ON samp_db.* TO fred@res.mars.com IDENTIFIED BY "quartz"

(samp_db.*意思是“samp_db數據庫的所有表)另一個極端是,你可能有一個經常旅行并需要能從世界各地的主機連接的用戶max。在這種情況下,你可以允許他無論從哪里連接:

GRANT ALL ON samp_db.* TO max@% IDENTIFIED BY "diamond"

“%”字符起通配符作用,與LIKE模式匹配的含義相同。在上述語句中,它意味著“任何主機”。所以max和max@%等價。這是建立用戶最簡單的方法,但也是最不安全的。

取其中,你可以允許一個用戶從一個受限的主機集合訪問。例如,要允許mary從snake.net域的任何主機連接,用一個%.snake.net主機指定符:

GRANT ALL ON samp_db.* TO mary@.snake.net IDENTIFIED BY "quartz";

如果你喜歡,用戶標識符的主機部分可以用IP地址而不是一個主機名來給定。你可以指定一個IP地址或一個包含模式字符的地址,而且,從MySQL 3.23,你還可以指定具有指出用于網絡號的位數的網絡掩碼的IP號:

GRANT ALL ON samp_db.* TO boris@192.168.128.3 IDENTIFIED BY "ruby" GRANT ALL ON samp_db.* TO fred@192.168.128.% IDENTIFIED BY "quartz" GRANT ALL ON samp_db.* TO rex@192.168.128.0/17 IDENTIFIED BY "ruby"

第一個例子指出用戶能從其連接的特定主機,第二個指定對于C類子網192.168.128的IP模式,而第三條語句中,192.168.128.0/17指定一個17位網絡號并匹配具有192.168.128頭17位的IP地址。 

如果MySQL抱怨你指定的用戶值,你可能需要使用引號(只將用戶名和主機名部分分開加引號)。

GRANT ALL ON samp_db.president TO "my friend"@"boa.snake.net"

1.2 用戶應該有什么級別的權限和它們應該適用于什么?

你可以授權不同級別的權限,全局權限是最強大的,因為它們適用于任何數據庫。要使ethel成為可做任何事情的超級用戶,包括能授權給其它用戶,發出下列語句:

GRANT ALL ON *.* TO ethel@localhost IDENTIFIED BY "coffee" WITH GRANT OPTION

ON子句中的*.*意味著“所有數據庫、所有表”。從安全考慮,我們指定ethel只能從本地連接。限制一個超級用戶可以連接的主機通常是明智的,因為它限制了試圖破解口令的主機。

有些權限(FILE、PROCESS、RELOAD和SHUTDOWN)是管理權限并且只能用"ON *.*"全局權限指定符授權。如果你愿意,你可以授權這些權限,而不授權數據庫權限。例如,下列語句設置一個flush用戶,他只能發出flush語句。這可能在你需要執行諸如清空日志等的管理腳本中會有用:

GRANT RELOAD ON *.* TO flushl@localhost IDENTIFIED BY "flushpass"

一般地,你想授權管理權限,吝嗇點,因為擁有它們的用戶可以影響你的服務器的操作。

數據庫級權限適用于一個特定數據庫中的所有表,它們可通過使用ON db_name.*子句授予:

GRANT ALL ON samp_db TO bill@racer.snake.net INDETIFIED BY "rock" GRANT SELECT ON samp_db TO ro_user@% INDETIFIED BY "rock"

第一條語句向bill授權samp_db數據庫中所有表的權限,第二條創建一個嚴格限制訪問的用戶ro_user(只讀用戶),只能訪問samp_db數據庫中的所有表,但只有讀取,即用戶只能發出SELECT語句。

你可以列出一系列同時授予的各個權限。例如,如果你想讓用戶能讀取并能修改現有數據庫的內容,但不能創建新表或刪除表,如下授予這些權限:

GRANT SELECT,INSERT,DELETE,UPDATE ON samp_db TO bill@snake.net INDETIFIED BY "rock"

對于更精致的訪問控制,你可以在各個表上授權,或甚至在表的每個列上。當你想向用戶隱藏一個表的部分時,或你想讓一個用戶只能修改特定的列時,列特定權限非常有用。如:

GRANT SELECT ON samp_db.member TO bill@localhost INDETIFIED BY "rock"GRANT UPDATE (expiration) ON samp_db. member TO bill@localhost

第一條語句授予對整個member表的讀權限并設置了一個口令,第二條語句增加了UPDATE權限,當只對expiration列。沒必要再指定口令,因為第一條語句已經指定了。

如果你想對多個列授予權限,指定一個用逗號分開的列表。例如,對assistant用戶增加member表的地址字段的UPDATE權限,使用如下語句,新權限將加到用戶已有的權限中:

GRANT UPDATE (street,city,state,zip) ON samp_db TO assistant@localhost

通常,你不想授予任何比用戶確實需要的權限寬的權限。然而,當你想讓用戶能創建一個臨時表以保存中間結果,但你又不想讓他們在一個包含他們不應修改內容的數據庫中這樣做時,發生了要授予在一個數據庫上的相對寬松的權限。你可以通過建立一個分開的數據庫(如tmp)并授予開數據庫上的所有權限來進行。例如,如果你想讓來自mars.net域中主機的任何用戶使用tmp數據庫,你可以發出這樣的GRANT語句:

GRANT ALL ON tmp.* TO ""@mars.net

在你做完之后,用戶可以創建并用tmp.tbl_name形式引用tmp中的表(在用戶指定符中的""創建一個匿名用戶,任何用戶均匹配空白用戶名)。

1.3 用戶應該被允許管理權限嗎?

你可以允許一個數據庫的擁有者通過授予數據庫上的所有擁有者權限來控制數據庫的訪問,在授權時,指定WITH GRANT OPTION。例如:如果你想讓alicia能從big.corp.com域的任何主機連接并具有sales數據庫中所有表的管理員權限,你可以用如下GRANT語句:

GRANT ALL ON sales.* TO alicia@%.big.corp.com INDETIFIED BY "applejuice" WITH GRANT OPTION

在效果上WITH GRANT OPTION子句允許你把訪問授權的權利授予另一個用戶。要注意,擁有GRANT權限的兩個用戶可以彼此授權。如果你只給予了第一個用戶SELECT權限,而另一個用戶有GRANT加上SELECT權限,那么第二個用戶可以是第一個用戶更“強大”。

2 撤權并刪除用戶

要取消一個用戶的權限,使用REVOKE語句。REVOKE的語法非常類似于GRANT語句,除了TO用FROM取代并且沒有INDETIFED BY和WITH GRANT OPTION子句:

REVOKE privileges (columns) ON what FROM user

user部分必須匹配原來GRANT語句的你想撤權的用戶的user部分。privileges部分不需匹配,你可以用GRANT語句授權,然后用REVOKE語句只撤銷部分權限。

REVOKE語句只刪除權限,而不刪除用戶。即使你撤銷了所有權限,在user表中的用戶記錄依然保留,這意味著用戶仍然可以連接服務器。要完全刪除一個用戶,你必須用一條DELETE語句明確從user表中刪除用戶記錄:

%mysql -u root mysqlmysql>DELETE FROM user ->WHERE User="user_name" and Host="host_name";mysql>FLUSH PRIVILEGES; 

DELETE語句刪除用戶記錄,而FLUSH語句告訴服務器重載授權表。(當你使用GRANT和REVOKE語句時,表自動重載,而你直接修改授權表時不是。)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
国产成人A∨麻豆精品| 亚洲AV无码一区二区二三区下载 | 亚洲欧美成人在线| 亚洲国产精品无码第一区二区三区 | 国产96色在线 | 国| 亚洲人成国产精品无码果冻| 一本无线乱码不卡一二三四| 8Ⅹ8X擦拨擦拨成人免费视频 | 亚洲无人区码二码三码区别图| 高清拍拍拍无挡国产精品| 久久精品国产亚洲AⅤ无码| 久久久久久久精品妇女99 | 少妇高潮惨叫喷水在线观看| 三上悠亚AV影院在线看| 特级小箩利无码毛片| 亚洲AV无码国产丝袜在线观看| 老男人久久青草AV高清| 含羞草实验室隐藏路径2023| 久久WWW免费人成_看片| 无码精品人妻一区二区三区AV| 亚洲精品无码成人片在线观看| 亚洲熟妇成人精品一区| 24小时日本在线| JAVAPARSERHD夫妻| 无人区码卡二卡WWW| 亚洲国产精品无码中文在线| 亚洲女人人体ASS| 唱歌的大姐姐也想做| 蜜桃av秘 无码一区二区三区| 亚洲日韩国产精品第一页一区 | 老公和兄弟一前一后攻击| 久久无码中文字幕免费影院蜜桃| 国内精品一区二区三区| 欧美成人精品手机在线| 女人收缩时男人舒服吗| 亚洲AⅤ永久无码精品毛片| 日韩精品一区二区三区中文无码| 人妻无码全彩里番ACG视频 | 好紧好骚好诱人好软| 日本边添边摸边做边爱边| 日本丰满少妇XXXX| 亚洲精华液一二三产区| 被三个男人躁一夜好爽小说| 97人妻成人免费视频| 在线播放无码后入内射少妇| AV无码专区亚洲AVL在线观看 | 同性男男黄网站在线观看国外| 成人无码AⅤ久久精品国产传媒| 免费高清AV一区二区三区| 亚洲AV日韩AV成人AV| GAY成年男人露J网站| 成人无码H动漫在线网站樱花| 精产国品一二三产品区别在哪| 热の无码热の有码热の综合| 亚洲VA久久久噜噜噜久久天堂 | 无遮挡裸体免费视频尤物| 大战丰满人妻性色AV偷偷| 久久狠狠高潮亚洲精品| 日本免费一区二区三区| 中国农村熟妇性视频| 黑人与日本XXXXXTV| 国产精品无码午夜福利| 爱丫爱丫影院在线观看免费| 久久久久亚洲精品成人网| 欧美三级一区二区| WYC忘忧草在线看WWW| 精品久久久久久综合日本 | 久久69老妇伦国产熟女高清| 国产女主播白浆在线看| 女性の乳頭を遮住する方法| 亚洲丰满熟妇在线观看| 国内精品久久久久影院日本| 亚洲精品国产成人| 免费观看大片的APP视频| 成年免费A级毛片无码| 国产未成女一区二区| 亚洲人午夜射精精品日韩| 国产精品高潮呻吟AV久久无码 | 顶级欧美RAPPER| 女人下边被添全过视频| 亚洲熟妇色XXXXX成熟| 又黄又爽又色的视频| 国产JJIZZ女人多水| 久久久久久久精品国产亚洲87| 人妻中文字幕制服丝袜| 亚洲欧美综合一区二区三区| 肥妇大BBWBBWBBWBBW| 欧美成妇人吹潮在线播放| 中文字幕久久久久人妻中出| 国产精品久久久久9999吃药 | 98精产国品一二三产区区| 日本亚洲色大成网站WWW| 果冻传媒影视在线播放| 51福利国产在线观看午夜天堂| 天天爽夜夜爽夜夜爽| 麻豆传播媒体免费版官网| 抖抈短视频APP下载| 玩弄chinese丰满人妻| 干的你走不了路SB| 天天爽天天狠久久久综合麻豆 | 国产午夜视频在线观看| 五十熟妇日本熟妇久久| А√天堂8资源中文在线| 精品人妻一区二区浪潮av| 无码人妻丰满熟妇啪啪| 国内精品伊人久久久久网站| 越南少妇BBV叉叉叉| 娇妻在我面前被黑人撑爆| 亚洲色精品88色婷婷七月丁香| 精品人妻av无码一区二区三区| 亚洲欧洲日产国码无码AV一| PYTHON人马大战CSDN| 日产乱码一二三区别免费看 | 精品国产三级A∨在线| 豆国产96在线 | 亚洲| 欧美人与性口牲恔配视频| 在线观看日本亚洲一区| 久久久久人妻精品区一| 亚洲色大成网站WWW永久| 护士人妻HD中文字幕| 亚洲AV永久无码天堂网毛片| 国产小视频A在线观看| 午夜理论片免费播放| 国产精品自产拍高潮在线观看| 忘忧草社区在线影视| 国产成人AV综合久久视色| 色嗨嗨AV一区二区三区| 成人性生交大片免费看好| 日本适合十八岁以下的护肤| 草莓丝瓜芭乐鸭脖奶茶发型| 日本精产国品一二三产品区别| 班主任掀开裙子让我桶的| 人妻无码一区二区在线影院| 宝宝握住坐下~它会自己动| 日本人和NEWBALANCE| 粉嫩丰满人妻内射| 天干天干啦夜天天喷水| 精品国产一区二区亚洲人成毛片| 色又黄又爽18禁免费网站 | 欧美激情视频一区| YY111111少妇影院无码老司机| 人人妻人人澡人人爽精品日本| 成人毛片无码一区二区三区| 熟妇人妻不卡中文字幕| 国产精品私密保养| 亚洲国产成人久久一区WWW| 久久99精品久久久久免费| 亚洲一线产区二线产区| 蜜桃AV不卡无码三区| AV天堂精品久久久久2| 人体艺术在线观看| 国产AV国片精品一区二区| 无套内谢的新婚少妇国语播放| 黑人60厘米全进去了| 一个添下面两个吃奶| 欧美 丝袜 自拍 制服 另类| 波多野结系列18部无码观看A| 首页 动漫 亚洲 欧美 日韩| 国产午夜三级一区二区三| 亚洲日韩AV无码中文| 免费又黄又硬又爽大片免费| 被医生吃奶吃高潮了H| 我趁老师睡觉偷偷的脱她内裤| 国精一二二产品无人区免费应用| 亚洲午夜福利精品久久| 内地CHINA麻豆VIDEOS| 成人女人A级毛片免费软件| 无码AV免费一区二区三区| 精品VIDEOSSEXFREEOHDBBW| 曰批免费视频播放免费| 人妻丰满熟妇AV无码区| 国产旡码高清一区二区三区| 亚洲精品55夜色66夜色| 男女猛烈无遮掩视频免费软件| 成人无号精品一区二区三区| 亚洲 校园 欧美 国产 另类 | 亚洲一区日韩高清中文字幕亚洲| 欧美黑人疯狂性受XXXXX喷水| 非洲BBOOMBBOOM的含义| 亚洲VA中文慕无码久久AV| 麻豆精品一区二区综合AV| 成人亚洲欧美成ΑⅤ人在线观看 | 亚洲中文字幕AV无码区| 人妻丰满熟妇AV无码区乱| 国产精品一区理论片| 尤物永久免费AV无码网站| 日韩爆乳一区二区无码| 狠狠CAO2020高清视频| 99无人区码一码二码三码...| 透过校服的乳尖 揉捏| 久久精品国产亚洲精品| 波多野AV一区二区无码| 亚洲国产精品久久无码中文字蜜桃| 男女高潮免费观看无遮挡| 国产成人丝袜视频在线观看| 亚洲中文字幕无码中字| 日韩丰满少妇无码内射| 精品无人区麻豆乱码1区2区| 陈冠希实干阿娇13分钟| 亚洲色欲久久久综合网东京热|