欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySql之授權(quán)用戶權(quán)限如何設(shè)置

 更新時(shí)間:2023年05月17日 14:19:21   作者:xingcsdnboke  
這篇文章主要介紹了MySql之授權(quán)用戶權(quán)限如何設(shè)置問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

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、indexreferences、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)文章

最新評(píng)論