MySql之授權用戶權限如何設置
MySql授權用戶權限如何設置
首先:去 mysql 庫中查看 root 用戶的權限
select * from user where user = 'root' and host='localhost';
查看root權限為所有ip都可以訪問
mysql> show grants for root; GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY PASSWORD
1、授權test用戶擁有 mydatabase 數(shù)據(jù)庫的所有權限(某個數(shù)據(jù)庫的所有權限):
mysql>grant all privileges on mydatabase.* to user@localhost identified by '123456'; mysql>flush privileges;//刷新系統(tǒng)權限表
格式:grant 權限 on 數(shù)據(jù)庫.* to 用戶名@登錄主機 identified by "密碼";
2、指定部分權限給一用戶,可以這樣來寫:
mysql>grant select,update on testDB.* to test@localhost identified by '123456'; mysql>flush privileges; //刷新系統(tǒng)權限表
3、授權test用戶擁有所有數(shù)據(jù)庫的某些權限:
mysql>grant select,delete,update,create,drop on *.* to test@"%" identified by "123456"; //test用戶對所有數(shù)據(jù)庫都有select,delete,update,create,drop 權限。 //@"%" 表示對所有非本地主機授權,不包括localhost
MySQL賦予用戶權限命令總結
MySQL用戶可用權限
一個新建的MySQL用戶沒有任何訪問權限,這就意味著你不能在MySQL數(shù)據(jù)庫中進行任何操作。你得賦予用戶必要的權限。
以下是一些可用的權限:
ALL
: 所有可用的權限CREATE
: 創(chuàng)建庫、表和索引LOCK_TABLES
: 鎖定表ALTER
: 修改表DELETE
: 刪除表INSERT
: 插入表或列SELECT
: 檢索表或列的數(shù)據(jù)CREATE_VIEW
: 創(chuàng)建視圖SHOW_DATABASES
: 列出數(shù)據(jù)庫DROP
: 刪除庫、表和視圖grant
、index
、references
、reload
、shutdown
、process
等等
賦予權限基本命令格式
mysql> grant 權限1,權限2 on 數(shù)據(jù)庫名稱.表名稱 to 用戶名@用戶地址 identified by ‘連接口令’;
當權限1,權限2,…被all privileges或者all代替,表示賦予用戶全部權限。
當數(shù)據(jù)庫名稱.表名稱被*.*代替,表示賦予用戶操作服務器上所有數(shù)據(jù)庫所有表的權限。
用戶地址可以是localhost,也可以是ip地址、機器名字、域名。也可以用'%'表示從任何地址連接。
‘連接口令’不能為空,否則創(chuàng)建失敗。
在MySQL安裝完成后,為了確保數(shù)據(jù)庫的安全性,通常我們都使用mysqladmin命令給數(shù)據(jù)管理員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 test@192.168.100.100 identified by '123';
給來自192.168.100.100的用戶test分配可對數(shù)據(jù)庫school的info表進行select,insert,update,delete,create,drop等操作的權限,并設定口令為123。
例3
mysql> grant all privileges on school.* to test@192.168.100.100 identified by '123';
給來自192.168.100.100的用戶test分配可對數(shù)據(jù)庫school所有表進行所有操作的權限,并設定口令為123。
例4
mysql>grant all privileges on *.* to test@localhost identified by '123';
給本機用戶test分配可對所有數(shù)據(jù)庫的所有表進行所有操作的權限,并設定口令為123。
注:在mysql模式中,當賦予用戶權限或者權限設定后,重要的一步使得命令立即生效:
mysql>flush privileges
忘記密碼 重置密碼
systemctl stop mysqld.service mysqld --skip-grant-tables 啟動數(shù)據(jù)庫不使用授權表 source /etc/profile
mysql 進入數(shù)據(jù)庫
update mysql.user set authentication_string=password ('123456') where user='root'; flush privileges; 刷新數(shù)據(jù)庫 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時即可跳過驗證,直接進入。
總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
my.ini優(yōu)化mysql數(shù)據(jù)庫性能的十個參數(shù)(推薦)
這篇文章主要介紹了my.ini優(yōu)化mysql數(shù)據(jù)庫性能的十個參數(shù)(推薦),需要的朋友可以參考下2015-09-09在windows上安裝不同(兩個)版本的Mysql數(shù)據(jù)庫的教程詳解
這篇文章主要介紹了在windows上安裝不同(兩個)版本的Mysql數(shù)據(jù)庫 ,需要的朋友可以參考下2019-04-04MYSQL?數(shù)據(jù)庫時間字段?INT,TIMESTAMP,DATETIME?性能效率的比較介紹
這篇文章主要介紹了MYSQL數(shù)據(jù)庫時間字段INT,TIMESTAMP,DATETIME性能效率的比較介紹,文章通過圍繞主題展開詳細的內容介紹,具有一定的參考價值,需要的小伙伴可以參考一下2022-09-09MYSQL ZIP免安裝版配置步驟及圖形化管理工具mysql-workbench
在 windows7 64位操作系統(tǒng)下配置mysql-5.5.25-winx64 (免安裝版),記錄步驟如下2014-03-03