格式:
查詢權限:
show grants for '用戶'@'IP地址'
授權:
grant 權限 on 數據庫,表 to '用戶'@'IP地址'
取消權限
grant 權限 on 數據庫,表 from '用戶'@'IP地址'
權限大全
MySQL權限詳解(1)
All/All Privileges權限代表全局或者全數據庫對象級別的所有權限
Alter權限代表允許修改表結構的權限,但必須要求有create和insert權 限配合。如果是rename表名,則要求有alter和drop原表,create和 insert新表的權限
Alter routine權限代表允許修改或者刪除存儲過程、函數的權限
Create權限代表允許創建新的數據庫和表的權限
Createroutine權限代表允許創建存儲過程、函數的權限
Createtablespace權限代表允許創建、修改、刪除表空間和日誌組的權 限
Create temporary tables權限代表允許創建臨時表的權限
Createuser權限代表允許創建、修改、刪除、重命名user的權限
Createview權限代表允許創建視圖的權限
MySQL權限詳解(2)
• Delete權限代表允許刪除行數據的權限
• Drop權限代表允許刪除數據庫、表、視圖的權限,包括truncatetable命令
• Event權限代表允許查詢,創建,修改,刪除MySQL事件
• Execute權限代表允許執行存儲過程和函數的權限
• File權限代表允許在MySQL可以訪問的目錄進行讀寫磁盤文件操作,可使用 的命令包括load data infile,select ... into outfile,load file()函數
• Grant option權限代表是否允許此用戶授權或者收回給其他用戶你給予的權 限
• Index權限代表是否允許創建和刪除索引
• Insert權限代表是否允許在表裏插入數據,同時在執行analyze table,optimize table,repair table語句的時候也需要insert權限
• Lock權限代表允許對擁有select權限的表進行鎖定,以防止其他鏈接對此表 的讀或寫
MySQL權限詳解(3)
• Process權限代表允許查看MySQL中的進程信息,比如執行showprocesslist,
• Reference權限是在5.7.6版本之後引入,代表是否允許創建外鍵
• Reload權限代表允許執行flush命令,指明重新加載權限表到系統內存中, refresh命令代表關閉和重新開啓日誌文件並刷新所有的表
• Replication client權限代表允許執行show master status,show slave status,show binary logs命令
• Replication slave權限代表允許slave主機通過此用戶連接master以便建立主從 複製關係
• Select權限代表允許從表中查看數據,某些不查詢表數據的select執行則不需 要此權限,如Select 1+1,Select PI()+2;而且select權限在執行update/delete 語句中含有where條件的情況下也是需要的
• Showdatabases權限代表通過執行showdatabases命令查看所有的數據庫名
• Show view權限代表通過執行show create view命令查看視圖創建的語句mysqladmin processlist, show engine等命令
MySQL權限詳解(4)
• Shutdown權限代表允許關閉數據庫實例,執行語句包括mysqladmin shutdown
• Super權限代表允許執行一系列數據庫管理命令,包括kill強制關閉某個連接 命令,change master to創建複製關係命令,以及create/alter/drop server等命 令
• Trigger權限代表允許創建,刪除,執行,顯示觸發器的權限
• Update權限代表允許修改表中的數據的權限
• Usage權限是創建一個用戶之後的默認權限,其本身代表連接登錄權限
系統權限表
• 權限存儲在mysql庫的user,db, tables_priv, columns_priv, and procs_priv這幾個系統表中,待MySQL實例啓動後就加載到內存中
• User表:存放用戶賬戶信息以及全局級別(所有數據庫)權限,決定了 來自哪些主機的哪些用戶可以訪問數據庫實例,如果有全局權限則意味
着對所有數據庫都有此權限
• Db表:存放數據庫級別的權限,決定了來自哪些主機的哪些用戶可以訪 問此數據庫
• Tables_priv表:存放表級別的權限,決定了來自哪些主機的哪些用戶可以 訪問數據庫的這個表
• Columns_priv表:存放列級別的權限,決定了來自哪些主機的哪些用戶可 以訪問數據庫表的這個字段
• Procs_priv表:存放存儲過程和函數級別的權限
• User和db權限表結構
• User權限表結構中的特殊字段
• Plugin,password,authentication_string三個字段存放用戶認證信息
• Password_expired設置成’Y’則表明允許DBA將此用戶的密碼設置成過期而 且過期後要求用戶的使用者重置密碼(alter user/set password重置密碼)
• Password_last_changed作爲一個時間戳字段代表密碼上次修改時間,執 行create user/alter user/set password/grant等命令創建用戶或修改用戶密 碼時此數值自動更新
• Password_lifetime代表從password_last_changed時間開始此密碼過期的天 數
• Account_locked代表此用戶被鎖住,無法使用
• Tables_priv和columns_priv權限表結構
• Timestamp和grantor兩個字段暫時沒用
• Tables_priv和columns_priv權限值
• procs_priv權限表結構
• Routine_type是枚舉類型,代表是存儲過程還是函數
• Timestamp和grantor兩個字段暫時沒用
• 系統權限表字段長度限制表
• 權限認證中的大小寫敏感問題
• 字段user,password,authencation_string,db,table_name大小寫敏感
• 字段host,column_name,routine_name大小寫不敏感
• User用戶大小寫敏感
一、給DengMeng用戶對db1庫具有超級管理員授權(全部權限)
1、創建數據庫db1
create database db1 default charset utf8;
2、DengMeng授權
grant all Privileges on db1.* to 'DengMeng'@'%';
二、登錄DengMeng用戶測試訪問
mysql -uDengMeng -proot123. db1
具體授權看需求