數(shù)據(jù)庫 之 用戶和權限管理(DCL語句)

1. 概述

數(shù)據(jù)庫可以單獨創(chuàng)建用戶兔毒,而不使用登陸主機系統(tǒng)的賬號,同時,可以對所創(chuàng)建的用戶進行權限管理,實現(xiàn)了系統(tǒng)安全

權限管理中变秦,屬于DCL:Data Control Language 數(shù)據(jù)控制語言刘绣,關鍵字:GRANT:授權 和 REVOKE:取消權限

2 用戶管理

用戶賬號

.用戶賬號:'user'@'host'

user:用戶名

host:允許用戶通過哪些主機遠程連接mysqld服務

IP福贞、網(wǎng)絡地址恋技、主機名、通配符(%和_)

mysql可以限定從哪個主機發(fā)起連接

主機名如果寫出主機名刁赖,而不是ip搁痛,那么網(wǎng)絡中就要有dns能將主機名解析為ip长搀,否則連接會失敗

如授權是192.168.1.%的ip段宇弛,連接時host是www.magedu.com,如果被解析為192.168.1.100源请,那么就可以連接該數(shù)據(jù)庫枪芒,事實上192.168.1.100這個ip的主機名不用是固定,只需要能被解析為192.168.1.100就可以

2.1 創(chuàng)建用戶

CREATE USER'username'@'host' [IDENTIFIED BY 'password'];

用戶名是有用戶名+主機名(或者ip)組合成一個用戶名

這樣的效果是組合驗證谁尸,有限制的作用舅踪,某個用戶只能在指定的用戶名或者是指定的ip才能訪問數(shù)據(jù)庫

create usersunny@'172.18.50.%' identified by 'Pass123456';

在其他機器上連接,命令如下

mysql -usunny -pPass1234-h172.18.50.73;

創(chuàng)建完賬號后良蛮,要給賬號賦予權限抽碌,才能訪問對應的表

在服務器上,授權用戶sunny對數(shù)據(jù)庫服務器里的sunny這個庫具有所有的權限

grant all on sunny.* tosunny@'172.18.50.%';

授權sunny具有管理所有庫的權限

grant all on *.* tosunny@'172.18.50.%';

多了identify這個關鍵字决瞳,在授權的時候同時創(chuàng)建賬號

grant select,update on sunny.* tojack@'192.168.32.%' identified by "Pass123456";

.查看當前用戶:

SELECT user();

.查看用戶:這個命令需要在mysql庫里查看货徙,因為user這張表是建在mysql庫里,use mysql;

SELECT User,Host,PasswordFROM user;

2.2 刪除用戶

DROP USER? 'username'@'host';

示例:刪除默認的空用戶

DROP USER ''@'localhost';

例子

drop user jack@"192.168.32.%";

2.3 更改口令

1)SET PASSWORD FOR'user'@'host' = PASSWORD(‘password');

PASSWORD(‘password')改口令皮胡,=

PASSWORD(‘password')這個函數(shù)主要是用來給密碼進行加密痴颊;建議用這個方法執(zhí)行更改密碼的操作。

例子屡贺,注意密碼也要用引號引起來蠢棱,馬上生效,客戶端只要推出重新登陸就要用新密碼登陸

set password for"sunny"@"192.168.32.%" = password("Pass123456");

2) UPDATE user SETpassword=PASSWORD('magedu') WHERE User='root' ;

注意:上面修改表的命令不會馬上生效甩栈,客戶端退出重新登陸也還是要用舊密碼泻仙,需要在服務器端執(zhí)行:FLUSH PRIVILEGES生效

這個命令不一定都要執(zhí)行,有些時候會馬上生效量没,如果授權后玉转,而且刷新權限后還不生效,就退出重新登錄就會生效

3)/usr/local/mysql/bin/mysqladmin-u root–poldpasswordpassword 'newpassword‘

另外允蜈,linux下破解密碼最暴力的是清掉mysql這個目錄冤吨,但是也會把mysql目錄下的表都刪掉,不建議這么破解賬號

windows下忘記root密碼的時候饶套,破解密碼

1.關閉正在運行的MySQL服務漩蟆。

2.打開DOS窗口,轉到mysql\bin目錄妓蛮。

3.輸入mysqld

--skip-grant-tables回車怠李。--skip-grant-tables的意思是啟動MySQL服務的時候跳過權限表認證。

4.再開一個DOS窗口(因為剛才那個DOS窗口已經不能動了),轉到mysql\bin目錄捺癞。

5.輸入mysql回車夷蚊,如果成功,將出現(xiàn)MySQL提示符>髓介。

6.連接權限數(shù)據(jù)庫:use mysql;惕鼓。

6.改密碼:update

user set password=password("123") where user="root";(別忘了最后加分號)。

7.刷新權限(必須步驟):flush privileges;唐础。

8.退出quit箱歧。

9.注銷系統(tǒng),再進入一膨,使用用戶名root和剛才設置的新密碼123登錄呀邢。

源文檔<http://www.jb51.net/article/39454.htm>

3? 權限管理

3.1? 授權

.權限級別:管理權限、數(shù)據(jù)庫豹绪、表价淌、字段、存儲例程

.Help GRANT

.GRANT priv_type,... ON [object_type]db_name.tb_nameTO 'user'@'host'[IDENTIFIED BY 'password'] [WITH GRANT OPTION];

[IDENTIFIED BY 'password']的命令不僅授權瞒津,而且如果賬號不存在蝉衣,會直接新生成不存在的賬號

WITH GRANT OPTION該賬號可以把自己的權限授權給別的賬號,一般不這么操作

priv_type: ALL[PRIVILEGES]

db_name.tb_name:

*.*:所有庫的所表

db_name.*:指定庫的所有表

db_name.tb_name:指定庫的指定表

db_name.routine_name:指定庫的存儲過程和函數(shù)

.示例:

GRANT SELECT,DELETE ontestdb.* TO 'testuser'@'%'IDENTIFIED BY 'testpass‘;

授權后如果新密碼不生效仲智,用命令:flush privileges;進行生效

以下命令授權sunny這個用戶在任何機器上都可以登陸买乃,而且對sunny這個數(shù)據(jù)的所有表具有select和update的權限

grant select,update onsunny.* to sunny@'%' identified by "Pass123456";

以下命令把數(shù)據(jù)庫sunny的所有表格都授予root@192.168.25.%這個賬號

grant all on sunny.* to root@“192.168.25.%”;

.查看指定用戶獲得的授權:

Help SHOW GRANTS

SHOW GRANTS FOR

'user'@'host';查看指定用戶的授權

SHOW GRANTS FORCURRENT_USER[()];

查看當前用戶的所有授權

show grants forcurrent_user();

3.2 回收授權

注意,需要先查看以下到底授權了哪些钓辆,這對授權進行回收剪验,沒有授權,回收不了前联,如原來授權了sunny.*,現(xiàn)在要回收sunny.f2只回收一張表的權限功戚,就不允許的

REVOKE priv_type, ... ONdb_name.tb_nameFROM 'user'@'host

例子

revoke update on sunny.* fromjack@"%";

REVOKE DELETE ON testdb.*FROM 'testuser'@'%‘

.注意:MariaDB服務進程啟動時會讀取mysql庫中所有授權表至內存

(1) GRANT或REVOKE等執(zhí)行權限操作會保存于系統(tǒng)表中,MariaDB的服務進程通常會自動重讀授權表似嗤,使之生效

(2)對于不能夠或不能及時重讀授權表的命令啸臀,可手動讓MariaDB的服務進程重讀授權表:mysql> FLUSH PRIVILEGES;

?

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市烁落,隨后出現(xiàn)的幾起案子乘粒,更是在濱河造成了極大的恐慌,老刑警劉巖伤塌,帶你破解...
    沈念sama閱讀 210,914評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件灯萍,死亡現(xiàn)場離奇詭異,居然都是意外死亡每聪,警方通過查閱死者的電腦和手機旦棉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評論 2 383
  • 文/潘曉璐 我一進店門齿风,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人绑洛,你說我怎么就攤上這事救斑。” “怎么了真屯?”我有些...
    開封第一講書人閱讀 156,531評論 0 345
  • 文/不壞的土叔 我叫張陵脸候,是天一觀的道長。 經常有香客問我讨跟,道長纪他,這世上最難降的妖魔是什么鄙煤? 我笑而不...
    開封第一講書人閱讀 56,309評論 1 282
  • 正文 為了忘掉前任晾匠,我火速辦了婚禮,結果婚禮上梯刚,老公的妹妹穿的比我還像新娘凉馆。我一直安慰自己,他們只是感情好亡资,可當我...
    茶點故事閱讀 65,381評論 5 384
  • 文/花漫 我一把揭開白布澜共。 她就那樣靜靜地躺著,像睡著了一般锥腻。 火紅的嫁衣襯著肌膚如雪嗦董。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,730評論 1 289
  • 那天瘦黑,我揣著相機與錄音京革,去河邊找鬼。 笑死幸斥,一個胖子當著我的面吹牛匹摇,可吹牛的內容都是我干的。 我是一名探鬼主播甲葬,決...
    沈念sama閱讀 38,882評論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼廊勃,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了经窖?” 一聲冷哼從身側響起坡垫,我...
    開封第一講書人閱讀 37,643評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎画侣,沒想到半個月后冰悠,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 44,095評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡棉钧,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,448評論 2 325
  • 正文 我和宋清朗相戀三年屿脐,在試婚紗的時候發(fā)現(xiàn)自己被綠了涕蚤。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,566評論 1 339
  • 序言:一個原本活蹦亂跳的男人離奇死亡的诵,死狀恐怖万栅,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情西疤,我是刑警寧澤烦粒,帶...
    沈念sama閱讀 34,253評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站代赁,受9級特大地震影響扰她,放射性物質發(fā)生泄漏。R本人自食惡果不足惜芭碍,卻給世界環(huán)境...
    茶點故事閱讀 39,829評論 3 312
  • 文/蒙蒙 一徒役、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧窖壕,春花似錦忧勿、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,715評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至速勇,卻和暖如春晌砾,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背烦磁。 一陣腳步聲響...
    開封第一講書人閱讀 31,945評論 1 264
  • 我被黑心中介騙來泰國打工养匈, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人个初。 一個月前我還...
    沈念sama閱讀 46,248評論 2 360
  • 正文 我出身青樓乖寒,卻偏偏與公主長得像,于是被迫代替她去往敵國和親院溺。 傳聞我的和親對象是個殘疾皇子楣嘁,可洞房花燭夜當晚...
    茶點故事閱讀 43,440評論 2 348

推薦閱讀更多精彩內容