MySql之授權(quán)用戶權(quán)限如何設(shè)置
MySql授權(quán)用戶權(quán)限如何設(shè)置
首先:去 mysql 庫中查看 root 用戶的權(quán)限
select * from user where user = 'root' and host='localhost';
查看root權(quán)限為所有ip都可以訪問
mysql> show grants for root; GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY PASSWORD
1、授權(quán)test用戶擁有 mydatabase 數(shù)據(jù)庫的所有權(quán)限(某個(gè)數(shù)據(jù)庫的所有權(quán)限):
mysql>grant all privileges on mydatabase.* to user@localhost identified by '123456'; mysql>flush privileges;//刷新系統(tǒng)權(quán)限表
格式:grant 權(quán)限 on 數(shù)據(jù)庫.* to 用戶名@登錄主機(jī) identified by "密碼";
2、指定部分權(quán)限給一用戶,可以這樣來寫:
mysql>grant select,update on testDB.* to test@localhost identified by '123456'; mysql>flush privileges; //刷新系統(tǒng)權(quán)限表
3、授權(quán)test用戶擁有所有數(shù)據(jù)庫的某些權(quán)限:
mysql>grant select,delete,update,create,drop on *.* to test@"%" identified by "123456"; //test用戶對(duì)所有數(shù)據(jù)庫都有select,delete,update,create,drop 權(quán)限。 //@"%" 表示對(duì)所有非本地主機(jī)授權(quán),不包括localhost
MySQL賦予用戶權(quán)限命令總結(jié)
MySQL用戶可用權(quán)限
一個(gè)新建的MySQL用戶沒有任何訪問權(quán)限,這就意味著你不能在MySQL數(shù)據(jù)庫中進(jìn)行任何操作。你得賦予用戶必要的權(quán)限。
以下是一些可用的權(quán)限:
ALL
: 所有可用的權(quán)限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
等等
賦予權(quán)限基本命令格式
mysql> grant 權(quán)限1,權(quán)限2 on 數(shù)據(jù)庫名稱.表名稱 to 用戶名@用戶地址 identified by ‘連接口令’;
當(dāng)權(quán)限1,權(quán)限2,…被all privileges或者all代替,表示賦予用戶全部權(quán)限。
當(dāng)數(shù)據(jù)庫名稱.表名稱被*.*代替,表示賦予用戶操作服務(wù)器上所有數(shù)據(jù)庫所有表的權(quán)限。
用戶地址可以是localhost,也可以是ip地址、機(jī)器名字、域名。也可以用'%'表示從任何地址連接。
‘連接口令’不能為空,否則創(chuàng)建失敗。
在MySQL安裝完成后,為了確保數(shù)據(jù)庫的安全性,通常我們都使用mysqladmin命令給數(shù)據(jù)管理員root用戶添加密碼,允許遠(yuǎn)程登錄并賦予所有權(quán)限。
例1
mysql> grant all privileges on *.* to 'root'@'%' identified by 'abc123' with grant option;
賦予所有特殊權(quán)限給root用戶,可以從任何IP地址遠(yuǎn)程登錄,密碼為abc123,且擁有g(shù)rant賦予權(quán)限的權(quán)限
例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分配可對(duì)數(shù)據(jù)庫school的info表進(jìn)行select,insert,update,delete,create,drop等操作的權(quán)限,并設(shè)定口令為123。
例3
mysql> grant all privileges on school.* to test@192.168.100.100 identified by '123';
給來自192.168.100.100的用戶test分配可對(duì)數(shù)據(jù)庫school所有表進(jìn)行所有操作的權(quán)限,并設(shè)定口令為123。
例4
mysql>grant all privileges on *.* to test@localhost identified by '123';
給本機(jī)用戶test分配可對(duì)所有數(shù)據(jù)庫的所有表進(jìn)行所有操作的權(quán)限,并設(shè)定口令為123。
注:在mysql模式中,當(dāng)賦予用戶權(quán)限或者權(quán)限設(shè)定后,重要的一步使得命令立即生效:
mysql>flush privileges
忘記密碼 重置密碼
systemctl stop mysqld.service mysqld --skip-grant-tables 啟動(dòng)數(shù)據(jù)庫不使用授權(quán)表 source /etc/profile
mysql 進(jìn)入數(shù)據(jù)庫
update mysql.user set authentication_string=password ('123456') where user='root'; flush privileges; 刷新數(shù)據(jù)庫 init 6 重啟
注:若是想默認(rèn)直接跳過賬戶驗(yàn)證,可直接通過在主配置文件中添加:
vim /etc/my.cnf
[mysqld] skip-grant-tables ? ? ?//添加跳過驗(yàn)證命令 user=mysql basedir = /usr/local/mysql datadir = /usr/local/mysql/data port = 3306 ....
重啟MySQL服務(wù)
systemctl restart mysqld.service
如上,當(dāng)再次進(jìn)入MySQL時(shí)即可跳過驗(yàn)證,直接進(jìn)入。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
my.ini優(yōu)化mysql數(shù)據(jù)庫性能的十個(gè)參數(shù)(推薦)
這篇文章主要介紹了my.ini優(yōu)化mysql數(shù)據(jù)庫性能的十個(gè)參數(shù)(推薦),需要的朋友可以參考下2015-09-09在windows上安裝不同(兩個(gè))版本的Mysql數(shù)據(jù)庫的教程詳解
這篇文章主要介紹了在windows上安裝不同(兩個(gè))版本的Mysql數(shù)據(jù)庫 ,需要的朋友可以參考下2019-04-04MYSQL?數(shù)據(jù)庫時(shí)間字段?INT,TIMESTAMP,DATETIME?性能效率的比較介紹
這篇文章主要介紹了MYSQL數(shù)據(jù)庫時(shí)間字段INT,TIMESTAMP,DATETIME性能效率的比較介紹,文章通過圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-09-09MySQL解決Navicat設(shè)置默認(rèn)字符串時(shí)的報(bào)錯(cuò)問題
本文主要介紹了MySQL解決Navicat設(shè)置默認(rèn)字符串時(shí)的報(bào)錯(cuò),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06MYSQL ZIP免安裝版配置步驟及圖形化管理工具mysql-workbench
在 windows7 64位操作系統(tǒng)下配置mysql-5.5.25-winx64 (免安裝版),記錄步驟如下2014-03-03mysql如何將查詢結(jié)果內(nèi)容進(jìn)行轉(zhuǎn)換
文章介紹了如何在MySQL中使用CASE表達(dá)式對(duì)查詢結(jié)果進(jìn)行多分支判斷,并分享了個(gè)人經(jīng)驗(yàn),希望對(duì)大家有所幫助2025-02-02