一、mysql許可權簡介
那麼mysql的許可權是如何實現的呢?這就要說到mysql的兩階段驗證,下面詳細介紹:第一階段:伺服器首先會檢查你是否允許連線。因為建立使用者的時候會加上主機限制,可以限制成本地、某個ip、某個ip段、以及任何地方等,只允許你從配置的指定地方登陸。第二階段:如果你能連線,mysql會檢查你發出的每個請求,看你是否有足夠的許可權實施它。比如你要更新某個表、或者查詢某個表,mysql會檢視你對哪個表或者某個列是否有許可權。再比如,你要執行某個儲存過程,mysql會檢查你對儲存過程是否有執行許可權等。
mysql的許可權如何分布,就是針對表可以設定什麼許可權,針對列可以設定什麼許可權如下:
許可權分布
可能的設定的許可權
表許可權『select』, 『insert』, 『update』, 『delete』, 『create』, 『drop』, 『grant』, 『references』, 『index』, 『alter』
列許可權『select』, 『insert』, 『update』, 『references』
過程許可權
『execute』, 『alter routine』, 『grant』
二、mysql許可權經驗原則:
許可權控制主要是出於安全因素,因此需要遵循一下幾個經驗原則:
1、只授予能滿足需要的最小許可權,防止使用者幹壞事。比如使用者只是需要查詢,那就只給select許可權就可以了,不要給使用者賦予update、insert或者delete許可權。
2、建立使用者的時候限制使用者的登入主機,一般是限制成指定ip或者內網ip段。
3、初始化資料庫的時候刪除沒有密碼的使用者。安裝完資料庫的時候會自動建立一些使用者,這些使用者預設沒有密碼。
4、為每個使用者設定滿足密碼複雜度的密碼。
5、定期清理不需要的使用者。**許可權或者刪除使用者。
三、mysql許可權實戰:
1、grant命令使用說明:
先來看乙個例子,建立乙個只允許從本地登入的超級使用者jack,並允許將許可權賦予別的使用者,密碼為:syy
grant all privileges on *.* to syy@'localhost' identified by 'syy' with grant option;
grant命令說明:
all privileges 是表示所有許可權,你也可以使用select、update等許可權。
on 用來指定許可權針對哪些庫和表。
*.* 中前面的*號用來指定資料庫名,後面的*號用來指定表名。
to 表示將許可權賦予某個使用者。
syy@』localhost』
表示jack使用者,@後面接限制的主機,可以是ip、ip段、網域名稱以及%,%表示任何地方。注意:這裡%有的版本不包括本地,以前碰到過給某個使用者設定了%允許任何地方登入,但是在本地登入不了,這個和版本有關係,遇到這個問題再加乙個localhost的使用者就可以了。
identified by 指定使用者的登入密碼。
with grant option 這個選項表示該使用者可以將自己擁有的許可權授權給別人。注意:經常有人在建立操作使用者的時候不指定with grant option選項導致後來該使用者不能使用grant命令建立使用者或者給其它使用者授權。
備註:可以使用grant重複給使用者新增許可權,許可權疊加,比如你先給使用者新增乙個select許可權,然後又給使用者新增乙個insert許可權,那麼該使用者就同時擁有了select和insert許可權。
2、重新整理許可權
使用這個命令使許可權生效,尤其是你對那些許可權表user、db、host等做了update或者delete更新的時候。以前遇到過使用grant後許可權沒有更新的情況,只要對許可權做了更改就使用flush privileges命令來重新整理許可權。
flush privileges;
3、檢視許可權
show grants;
show grants for 'syy'@'%'
4、**許可權
revoke delete on *.* grom 'syy'@'localhost'
5、刪除使用者
drop user 'syy'@'localhost'
6、對賬號重新命名
rename user 'syy'@'%' to 'change'@'%'
7、修改密碼
set password for 'root'@'localhost' = password("123456");
mysqladmin -u使用者名稱 -p123456 password12345abc
mysqladmin -u使用者名稱 -p舊密碼 password 新密碼
MySQL許可權管理
本文主要講述的是mysql grant命令的例項演示,文中的mysql grant命令的實際操作主要是在mysql 5.0 及以上的相關版本上執行,下面就是對其具體操作步驟的描述,望你在瀏覽之後會有所收穫。mysql 賦予使用者許可權命令的簡單格式可概括為 grant 許可權 on 資料庫物件 to...
mysql 許可權管理
1.新增使用者 方法一 create user wangda localhost identified by password 000000 說明 建立乙個本地的使用者,使用者名為 wangda 密碼為 000000 如果密碼為空,則 identified by password 000000 這個...
mysql許可權管理
mysqladmin u root p password leftpassword 無密碼的話直接回車 任意主機登入host換成 create user username host identified by password privileges all 代表所有許可權 表示全部的資料庫 gran...