MariaDB數據庫用戶創建/刪除及權限授權/撤回


1.MariaDB數據庫創建用戶

1.1 命令

CREATE USER 'username'@'host' IDENTIFIED BY 'password';

1.2 參數

username:(jack)
	創建的用戶名
host:(192.168.13.34)
	指定該用戶在哪個主機上可以登陸,
	如果是本地用戶可用localhost,
	如果想讓該用戶可以從任意遠程主機登陸,可以使用通配符%
password:(jack)
	建議用戶名和密碼不要一致,上述只是為了演示
	該用戶的登陸密碼,密碼可以為空,
	如果為空則該用戶可以不需要密碼登陸服務器.

1.3 示例

# 創建用戶‘Ann’
MariaDB [(none)]> create user ann@localhost identified by 'ann'
# 創建用戶‘Steven’
MariaDB [(none)]> create user ann@localhost identified by 'ann'
# 創建用戶‘Jack’
MariaDB [mysql]> create user jack@'192.168.13.34' identified by 'jack';

2.MariaDB數據庫給用戶授權

2.1 命令

GRANT privileges ON databasename.tablename TO 'username'@'host'

2.2 參數

privileges:
	用戶的操作權限,如SELECT,INSERT,UPDATE等,如果要授予所的權限則使用ALL.
databasename:
	數據庫名
tablename:
	表名,如果要授予該用戶對所有數據庫和表的相應操作權限則可用*表示,如*.*.

2.3 示例

# 授權Ann擁有db1數據庫的所有權限,允許在localhost登錄
MariaDB [(none)]> grant select on db1.* to ann@localhost;
MariaDB [mysql]> flush privileges;

# 授權Jack擁有db1數據庫的所有權限,允許在192.168.13.34登錄
MariaDB [(none)]> grant all on db1.* to jack@'192.168.13.34';
MariaDB [mysql]> flush privileges;

# 授權Steven擁有db1數據庫的所有權限,允許從任意遠程主機登陸,
# 注意你授權時用%,你創建用戶時,必須也是%,要對應,否則報錯.
MariaDB [(none)]> grant all on *.* to steven@'%';
MariaDB [mysql]> flush privileges;

3.MariaDB數據庫創建用戶並授權的命令

3.1 授權apollo用戶擁有db1數據庫的所有權限

MariaDB [mysql]> grant all on *.* to john@'192.168.13.34' identified by 'john';
MariaDB [mysql]> flush privileges;

3.2 授予外網登陸權限

MariaDB [mysql]> grant all privileges on *.* to username@'%' identified by 'password';

3.3 授予權限並且可以授權

MariaDB [mysql]>grant all privileges on *.* to username@'hostname' identified by 'password' with grant option;
# 整個命令是一句話,這里換行是因為顯示問題.

授權部分參數值:
all privileges,all
select,insert,update,delete,create,drop,index,alter,grant,references,reload,shutdown,process,file

4.MariaDB數據庫查看用戶

4.1 MariaDB查看當前登錄用戶

# 方法1
MariaDB [(none)]> select user();
# 方法2
MariaDB [(none)]> select current_user;
# 方法3
MariaDB [(none)]> select current_user();

4.2 MariaDB中如何顯示所有用戶?

MariaDB [(none)]> select User,Host,Password from mysql.user;

4.3 MariaDB顯示所有的用戶(不重復)

MariaDB [mysql]> select distinct user from mysql.user;

5.MariaDB數據庫刪除用戶

# 5.1 刪除用戶'jack'
MariaDB [mysql]> delete from user where user='jack';
# 5.2 刪除用戶'steven'
MariaDB [(none)]> delete from mysql.user where user='steven' and host='%';
# 5.3 刪除用戶'john'
MariaDB [(none)]> drop user 'john'@'192.168.13.34';

6.MariaDB數據庫撤銷用戶權限

6.1 命令

REVOKE privileges ON databasename.tablename FROM 'username'@'host';

6.2參數

privileges:
	用戶的操作權限,如SELECT,INSERT,UPDATE等,如果要授予所的權限則使用ALL.
databasename:
	數據庫名
tablename:
	表名,如果要授予該用戶對所有數據庫和表的相應操作權限則可用*表示,如*.*.

6.3 示例

# 假如你在給用戶授權的時候是這樣的:
grant select on db1.user to jack@'%';
# 執行下面sql語句
revoke select on *.* from jack@'%';
# 並不能撤銷該用戶對db1數據庫中user表的SELECT操作.

# 假如你在給用戶授權的時候是這樣的:
grant select on *.* to jack@'%';
# 執行下面sql語句
revoke select on db1.user from jack@'%';
# 並不能撤銷該用戶對db1數據庫中user表的SELECT操作.

6.4 查看授權信息

MariaDB [(none)]> show grants for 'jack'@'192.168.13.34';

6.5 撤銷用戶Jack所有權限

revoke ALL PRIVILEGES ON `db1`.* from 'jack'@'192.168.13.34'


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM