程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> MySQL的用戶和權限介紹,mysql用戶權限

MySQL的用戶和權限介紹,mysql用戶權限

編輯:MySQL綜合教程

MySQL的用戶和權限介紹,mysql用戶權限


一、關於MySQL權限的幾點常識:

1、MySQL的權限系統主要用來驗證用戶的操作權限。

2、在MySQL內部,權限信息存放在MySQL數據庫的granttable裡。當mysql啟動後,granttable裡的信息會寫入內存。

3、MySQL 使用user name 加 host name 來作為標識符。

通過這種標識符,可以用來區分不同host上的相同的user name。

4、MySQL 權限控制有2種策略:

1)根據密碼是否正確來控制客戶端的連接。

2)假設可以正常connect,server還可以檢查每個satement是否有權限去執行。如果只有某張表的select 權限,就不能進行drop 操作。

5、如果用戶的權限改變,當前已連接的會話用戶不會受影響,下次登錄才會生效。

 

 

二、關於MySQL的幾個有關權限表的含義:

user:用戶賬號、全局權限

db:庫級別權限

host:廢棄

tables_priv:表級別權限

colums_priv:列級別權限

procs_priv:存儲過程和存儲函數相關的權限

proxies_priv:代理用戶權限

 

三、MySQL用戶賬號的創建規則

用戶名@主機

用戶名:16字符以內

主機:

主機名:www.test.com,mysql

IP:192.168.2.1

網絡地址:192.168.0.0/255.255.0.0

通配符:%,192.168.%.%,%.test.com

 

 

四、MySQL的用戶權限級別

服務管理類:super

庫:CREATE

表:DELETE、ALTER

列:INSERT、SELECT、UPDATE

 

更多級別可參考MySQL官方文檔

 

 

五、與權限相關的幾個命令

GRANT 權限,... ON [對象類型] db.{table|routine} TO 'username'@'host' [INDENTIFIED BY 'password'];

REVOKE 權限,... ON [對象類型] db.{table|routine} FROM 'username'@'host';

SHOW GRANTS FOR 'username'@'host';

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

DROP USER 'username'@'host';

RENAME USER old_name TO new_name;

 

六、權限的操作命令舉例

查看當前數據庫的所有用戶:

select user,host,password from mysql.user;

 

給用戶賦予super權限(super和ALL PRIVILEGES都可以):

GRANT super ON *.* TO 'mysql'@'localhost';

GRANT ALL PRIVILEGES ON *.* TO 'mysql'@'localhost';

 

刪除用戶的super權限(super和ALL PRIVILEGES都可以):

REVOKE super ON *.* FROM 'mysql'@'localhost';

REVOKE ALL PRIVILEGES ON *.* FROM 'mysql'@'localhost';

 

查看賦予用戶的權限

SHOW GRANTS FOR 'mysql'@'localhost';

 

七、MySQL的問題處理

 

1、MySQL登錄密碼忘記時的恢復操作

 

啟動mysql_safe時傳遞兩個參數:

--skip-grant-tables      跳過授權表

--skip-networking       為了安全,防止網絡登錄

登錄方式一:

修改/etc/init.d/mysql

wKiom1RytyujvuBPAACcs_s8lZQ687.jpg

登錄方式二:

直接在my.cnf配置

[mysqld]

skip-grant-tables

skip-networking

而後修改密碼:

通過更新授權表方式直接修改其密碼,而後移除此兩個選項重啟服務器

UPDATE user SET PASSWORD=PASSWORD('123456') WHERE User='root'

 

2、客戶端連接MySQL數據庫速度慢的問題

 

直接在my.cnf配置,關閉DNS的反向解析參數

[mysqld]

skip-name-resolve

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved