1. 程式人生 > >MySQL賦予用戶權限命令總結

MySQL賦予用戶權限命令總結

重啟 訪問 所有權 忘記 insert 重置密碼 重要 完成 mysql

MySQL用戶可用權限

一個新建的MySQL用戶沒有任何訪問權限,這就意味著你不能在MySQL數據庫中進行任何操作。你得賦予用戶必要的權限。以下是一些可用的權限:

ALL: 所有可用的權限

CREATE: 創建庫、表和索引

LOCK_TABLES: 鎖定表

ALTER: 修改表

DELETE: 刪除表

INSERT: 插入表或列

SELECT: 檢索表或列的數據

CREATE_VIEW: 創建視圖

SHOW_DATABASES: 列出數據庫

DROP: 刪除庫、表和視圖

grant、index、references、reload、shutdown、process等等

賦予權限基本命令格式

mysql> grant 權限1,權限2 on 數據庫名稱.表名稱 to 用戶名@用戶地址 identified by ‘連接口令’;

當權限1,權限2,…被all privileges或者all代替,表示賦予用戶全部權限。
當數據庫名稱.表名稱被*.*代替,表示賦予用戶操作服務器上所有數據庫所有表的權限。
用戶地址可以是localhost,也可以是ip地址、機器名字、域名。也可以用‘%‘表示從任何地址連接。
‘連接口令’不能為空,否則創建失敗。
  • 在MySQL安裝完成後,為了確保數據庫的安全性,通常我們都使用mysqladmin命令給數據管理員root用戶添加密碼,允許遠程登錄並賦予所有權限。

  • 例1
mysql> grant all privileges on *.* to ‘root‘@‘%‘ identified by ‘abc123‘ with grant option;

賦予所有特殊權限給root用戶,可以從任何IP地址遠程登錄,密碼為abc123,且擁有grant賦予權限的權限
  • 例2
mysql> grant select,insert,update,delete,create,drop on school.info to [email protected] identified by ‘123‘;

給來自192.168.100.100的用戶test分配可對數據庫school的info表進行select,insert,update,delete,create,drop等操作的權限,並設定口令為123。
  • 例3
mysql> grant all privileges on school.* to [email protected] identified by ‘123‘;

給來自192.168.100.100的用戶test分配可對數據庫school所有表進行所有操作的權限,並設定口令為123。
  • 例4
mysql>grant all privileges on *.* to test@localhost identified by ‘123‘;

給本機用戶test分配可對所有數據庫的所有表進行所有操作的權限,並設定口令為123。
  • 註:在mysql模式中,當賦予用戶權限或者權限設定後,重要的一步使得命令立即生效:

mysql>flush privileges

忘記密碼 重置密碼

systemctl stop mysqld.service
mysqld --skip-grant-tables 啟動數據庫不使用授權表
source /etc/profile
mysql 進入數據庫
> update mysql.user set authentication_string=password (‘123456‘) where user=‘root‘;
> flush privileges; 刷新數據庫

init 6 重啟

  • 註:若是想默認直接跳過賬戶驗證,可直接通過在主配置文件中添加:

vim /etc/my.cnf

[mysqld]
skip-grant-tables      //添加跳過驗證命令
user=mysql
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
....
  • 重啟MySQL服務

systemctl restart mysqld.service

如上,當再次進入MySQL時即可跳過驗證,直接進入。

MySQL賦予用戶權限命令總結