MySQL用戶權限簡單控制

1,普通用戶的創建

1,格式 create user 'username'@'hostname' identified by 'password';
語義:創建一個名字爲username,主機名(hostname),密碼爲password 的用戶

2,格式 grant [privilieges] on database.table to 'username'@'hostname' identified by 'password';
語義:其中privilieges表示要賦予用戶的操作哪個database的table的CURD的權限
所有的權限使用 all ,所有庫,表使用*.*來表示,其中hostname 可以用%,表示任意客戶端

3,使用insert 語句在mysql.user 表中插入數據,但是這種鑑於有的不同版本對於user表的字段名定義不一樣。
4,我們創建的用戶可以用 show User,Host from mysql.user; 來羅列出來。MySQL中user表就定義了用戶的各種權限字段,如下圖:
在這裏插入圖片描述

2,普通用戶的刪除

1,格式DROP USER 'username'@'localhost';

2,使用delete,直接在mysql.user 刪除對應用戶,這裏說一下,mysql 的身份驗證,服務器只有在mysql.user中HostUser,Password(每個版本可能不一樣) 與客戶端的用戶名,密碼,以及IP匹配的纔會鏈接到服務器,否則是不會鏈接的

3,密碼修改

1,update mysql.user set Password=Password("password") where User = 'userName' and 'Host'='hostname';
這裏可能會報錯,還是那個原因,字段名不一樣。

2,set password=password("rootPsd");這是MySQL內置的語句
如果你是使用普通用戶登錄,這句話就是修改普通用的密碼

3,set password for 'username'@'hostname' = password('usernpwd');
root用戶修改普通用戶的密碼

4,grant usage on *.* to 'notrootUsername'@'hostname' ideantified by 'notrootUserPwd';

3,用戶對數據庫的操作權限

1,grant all on *.* to 'username'@'hostname' identified by 'pwd'; 授權
all 是所有操作(CRUD) 第一個 * 表示任意數據庫,第二個* 表示數據庫下的任意表,還可以指定表中的指定列

2,revoke all on *.* from 'username'@'hostname'; 收回權限

4,關於允許遠程登錄問題,

很多人都說修改my.cnf,或者在該文件中添加某個命令。怎麼說呢,可能人家這樣做是對的!,由於版本的不同,配置文件稍有不同,但是我們應該自己找一下,不要盲目去看別人怎麼做,
一般MySQL的核心配置不在這裏,但是這裏麪包含了其他配置文件的路徑,
在這裏插入圖片描述
主要配置在第二個路徑下, vim tc/mysql/mysql.conf.d/mysqld.cnf
在這裏插入圖片描述
這裏bind-address = 0.0.0.0 我已近修改了,原本是127.0.0.1並把註釋去掉就可以了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章