程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> mysql grants小記

mysql grants小記

編輯:關於MYSQL數據庫
安裝mycheckpoint的時候,給這個監控用戶分權限的時候,發現了這個秘密:
復制代碼 代碼如下:
mysql>
mysql> GRANT ALL PRIVILEGES ON mycheckpoint.* TO 'mycheckpoint_user'@'localhost' IDENTIFIED BY '123456';
ERROR 1470 (HY000): String 'mycheckpoint_user' is too long for user name (should be no longer than 16)
mysql>

grant命令是對mysql數據庫進行用戶創建,權限或其他參數控制的強大的命令,官網上介紹它就有幾大頁,要用精它恐怕不是一日半早的事情,權宜根據心得慢慢領會吧!
grant命令的簡單介紹是這樣的:
The GRANT statement enables system administrators to grant privileges to MySQL user accounts. GRANT also serves to specify other account characteristics such as use of secure connections and limits on access to server resources. To use GRANT, you must have the GRANT OPTION privilege, and you must have the privileges that you are granting.
這段話的意思是說:grant命令允許系統管理員對mysql 用戶賬號(user account)授予各類權限(grant privileges),grant當然也可以用於設置帳號的其他特征如安全連接和服務資料訪問限制等,為使用grant命令,必須有GRANT OPTION 權限,同是你必須有你要授予權限的權限!
使用show grant命令 SHOW GRANTS [FOR user]
該命令的解釋是:This statement lists the GRANT statement or statements that must be issued to duplicate the privileges that are granted to a MySQL user account.
如果要需要當前用戶的權限,可以使用這下三條命令之一:

SHOW GRANTS;SHOW GRANTS FOR CURRENT_USER;SHOW GRANTS FOR CURRENT_USER();在本機上運行命令的效果(當用使用的root用戶連接到mysql)使用grant命令前,需要搞清楚以下信息:grant 的類型,即你要授予什麼權限(privilege type),是允許查詢?插入行?創建?還是其他等等。grant 的對象類型(priv_type),有三種:TABLE、 FUNCTION、PROCEDURE,還有一種是默認的,就是DATABASE數據庫。grant 的對象(priv_level):是作用於所有數據庫呢?還是作用於某一數據庫,是作用於數據庫的所有表,還是某一個單一的表,甚至是表中的某些列!可以這樣做個想象,用戶就是一個城管執法者:他有那些權限(privilege type),驅趕走鬼?沒收走鬼的東西?他管理那類(priv_type)走鬼呢?賣水果的?烘烤的還是賣钸口的?他管理的范圍是什麼:整個區?某條街道?最後,不同的權限會能或不能作用於不同的對象類型和范圍,以下是部分截圖,具體可能參考:
dev.mysql.com/doc/refman/5.1/en/privileges-provided.html


以下是某些權限的解數截圖,詳細在dev.mysql.com/doc/refman/5.1/en/grant.html
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved