MySQL賦予用戶權限命令總結
阿新 • • 發佈:2018-07-11
重啟 訪問 所有權 忘記 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賦予用戶權限命令總結