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'