MySQL的使用者和許可權介紹

來源:互聯網
上載者:User

標籤: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

650) this.width=650;" title="qqq.png" src="http://s3.51cto.com/wyfs02/M00/53/DE/wKiom1RytyujvuBPAACcs_s8lZQ687.jpg" alt="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

本文出自 “初來乍到-Jasen” 部落格,請務必保留此出處http://shengjian.blog.51cto.com/3022827/1581854

MySQL的使用者和許可權介紹

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.