Mysql使用者相關操作

來源:互聯網
上載者:User

標籤:io   os   sp   檔案   資料   on   bs   ad   as   

MySQL 預設有個root使用者,但是這個使用者權限太大,一般只在管理資料庫時候才用。如果在項目中要串連 MySQL 資料庫,則建議建立一個許可權較小的使用者來串連。

在 MySQL 命令列模式下輸入如下命令可以為 MySQL 建立一個新使用者:

CREATE USER username IDENTIFIED BY ‘password‘;

新使用者建立完成,但是此刻如果以此使用者登陸的話,會報錯,因為我們還沒有為這個使用者指派相應許可權,分配許可權的命令如下:

GRANT ALL PRIVILEGES ON *.* TO ‘username‘@‘localhost‘ IDENTIFIED BY ‘password‘;

授予username使用者在所有資料庫上的所有許可權。

GRANT REPLICATION SLAVE ON *.* TO ‘backup‘@‘address‘ IDENTIFIED BY ‘backup_xxx‘; 建立主從同步資料的帳號

如果此時發現剛剛給的許可權太大了,如果我們只是想授予它在某個資料庫上的許可權,那麼需要切換到root 使用者撤銷剛才的許可權,重新授權:

REVOKE ALL PRIVILEGES ON *.* FROM ‘username‘@‘localhost‘;

GRANT ALL PRIVILEGES ON dbnames.* TO ‘username‘@‘localhost‘ IDENTIFIED BY ‘password‘;

甚至還可以指定該使用者只能執行 select 和 update 命令:

GRANT SELECT, UPDATE ON dbnames.* TO ‘username‘@‘localhost‘ IDENTIFIED BY ‘password‘;

這樣一來,再次以username登陸 MySQL,只有dbnames資料庫是對其可見的,並且如果你只授權它select許可權,那麼它就不能執行除select之外的語句。

另外每當調整許可權後,通常需要執行以下語句重新整理許可權:

FLUSH PRIVILEGES;

刪除剛才建立的使用者:

DROP USER [email protected];

仔細上面幾個命令,可以發現不管是授權,還是撤銷授權,都要指定響應的host(即 @ 符號後面的內容),因為以上及格命令實際上都是在操作mysql資料庫中的user表,可以用如下命令查看相應使用者及對應的host:

SELECT User, Host FROM user;

當然,這個表中還包含很多其它例如使用者密碼、使用權限設定等很多內容,操作時候尤其需要小心。

忘記Root密碼:

開啟防火牆,確保在其他人不會串連到資料庫的時候:

關閉Mysql,並修改設定檔(my.cnf): 在[mysqld]下面添加:skip-grant-tables

重啟mysql,串連之後即可修改root密碼

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.