天天看點

10、權限管理

1、簡述:資料庫中通常有多個使用者共享,為保證資料庫的安全,SQL語言提供資料控制語句DCL(Data Control Language)對資料庫進行統一的管理,若要實作資料庫的安全性,則必須依據權限配置設定的最小化原則,進而将風險降至最低。這樣就能保證授權的使用者可以檢視或修改資料,又能保證授權使用者對合法資訊的通路。

2、權限可配置設定情況

權限配置設定原則遵循:從哪來,到哪去,去幹啥

從哪來:可以指定使用者名,允許連接配接的ID

到哪去:資料庫名,表名,

去幹啥:能夠使用的指令

以上三點使用Mysql資料庫的user,db,host表。

可配置設定權限表:

10、權限管理

MySQL權限分布:針對什麼表設定什麼權限,針對列可以設定哪些權限的問題

權限分布 可能的設定的權限

表權限 'Select', 'Insert', 'Update', 'Delete', 'Create', 'Drop', 'Grant', 'References', 'Index', 'Alter'

字段權限 'Select', 'Insert', 'Update',’References'

過程權限 'Execute', 'Alter Routine', 'Grant',’create’

MySQL權限經驗原則:

權限控制主要是出于安全因素,是以需要遵循一下幾個經驗原則:

1、隻授予能滿足需要的最小權限,防止使用者幹壞事。比如使用者隻是需要查詢,那就隻給select權限就可以了,不要給使用者賦予update、insert或者delete權限。

2、建立使用者的時候限制使用者的登入主機,一般是限制成指定IP或者内網IP段。@’192.168.1.28’ hostname

3、初始化資料庫的時候删除沒有密碼的使用者。安裝完資料庫的時候會自動建立一些使用者,這些使用者預設沒有密碼。

4、為每個使用者設定滿足密碼複雜度的密碼。CRM 疑是地上霜 CRM14floor&& 雙

5、定期清理不需要的使用者。回收權限或者删除使用者。帳号審計

3、權限配置設定應用

3.1 使用者權限檢視

mysql> select * from mysql.user where user="root" \G; 檢視root使用者詳細資訊

mysql> show grants; 檢視目前使用者權限

mysql> show grants for "root"@"localhost"; 3.3 檢視某個使用者權限

3.2 使用者建立

建立一個允許從本地登入的使用者xiaoxiong,并允許将權限賦予别的使用者的使用者,密碼設定為xiaoxiong

mysql> grant all privileges on . to xiaoxiong@'localhost' identified by 'xiaoxiong' with grant option;

參數:

<a href="mailto:br/">建立完畢使用者後需要重新整理權限,是使用者生效。 mysql&gt; flush privileges; [root@node1 ~]# mysql -uxiaoxiong -pxiaoxiong 驗證登入成功 mysql&gt; revoke all privileges on . from "xiaoxiong"@"localhost"; 回收權限 删除使用者: mysql&gt;drop user xiaoxiong@’localhost’; 修改使用者名: mysql&gt; rename user "xiaoxiong"@"localhost" to "XiaoXiong01"@"%";</a>

<a href="mailto:br/">修改密碼: 方法一、root無密碼時, mysqladmin -uroot password ‘password’ 充值密碼: mysql&gt; set password for "xiaoxiong"@"localhost"=password('xiaoxiong01') mysql&gt;set password=password(‘password’);修改目前使用者密碼 mysql&gt; FLUSH PRIVILEGES; 無論是建立還是修改都需要重新整理記憶體,否則不會生效。</a>

本文轉自 CARYFLASH 51CTO部落格,原文連結:http://blog.51cto.com/maoxiaoxiong/2045474