MariaDB資料庫使用者建立 刪除及許可權授權 撤回

2021-09-19 10:16:59 字數 3813 閱讀 3685

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.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.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.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.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.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'

mariadb資料庫的使用者和許可權

實驗 使用者use mysql show tables desc uesr 存放mysql的使用者 select host,user,password from user create user qin identified by 123465 create user qin 192.168.100...

Mariadb資料庫使用者及許可權管理

localhost 本機 192.168.150.網段 所有 方法二 在授權同時就建立使用者 grant 許可權列表 on 資料庫名.表名 to 使用者名稱 identified by 密碼 with grant option with grant option 這個選項表示該使用者可以將自己擁有的...

建立資料庫使用者

建立表空間 create tablespace 表空間名 datafile d 表空間名.dbf size 20m autoextend on next 10m 建立臨時表空間 create temporary tablespace 臨時表空間名 tempfile d myself.ldf size...