MySQL用户管理

1.用户
1.1 用户信息
mysql> use mysql;
Database changed
mysql>
select
host,user,authentication_string
from
user;+———–+—————+——————————————-+
| host | user | authentication_string |
+———–+—————+——————————————-+
| localhost | root | *
81
F5E21E35407D884A6CD4A731AEBFB6AF209E1B || localhost | mysq l
.session
| *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE || localhost | mysql
.sys
| *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |+———–+—————+——————————————-+
—
可以通过
desc user
初步查看一下表结构
字段解释:
host
:
表示这个用户可以从哪个主机登陆,如果是
localhost
,表示只能从本机登陆user
:
用户名authentication_string
:
用户密码通过
password
函数加密后的*_priv
:
用户拥有的权限
1.2 创建用户
语法:
create
user
‘
用户名
‘
@
‘
登陆主机
/ip’
identified
by
‘
密码
‘
;
案例:
mysql>
create
user
‘wmh’
@
‘localhost’
identified
by
‘12345678’
;Query OK,
0
rows affected (
0.06
sec)mysql>
select
user,host,authentication_string
from
user;+—————+———–+——————————————-+
| user | host | authentication_string |
+—————+———–+——————————————-+
| root | % | *A2F7C9D334175DE9AF4DB4F5473E0BD0F5FA9E75 |
| mysql
.session
| localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE || mysql
.sys
| localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE || wmh | localhost | *
84
AAC12F54AB666ECFC2A83C676908C8BBC381B1 |
—
新增用户+—————+———–+——————————————-+
4
rows
in set
(
0.00
sec)
1.3 删除用户
语法:
drop
user
‘
用户名
‘
@
‘
主机名’
示例:
mysql>
select
user,host,authentication_string
from
user;+—————+———–+——————————————-+
| user | host | authentication_string |
+—————+———–+——————————————-+
| root | % | *A2F7C9D334175DE9AF4DB4F5473E0BD0F5FA9E75 |
| mysql
.session
| localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE || mysql
.sys
| localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE || wmh | localhost | *
84
AAC12F54AB666ECFC2A83C676908C8BBC381B1 |+—————+———–+——————————————-+
4
rows
in set
(
0.00
sec)mysql>
drop
user wmh;
—
尝试删除ERROR
1396
(HY000): Operation
DROP
USER failed for
‘wmh’
@
‘%’
— <=
直接给个用户名,不能删除,它默认是%
,表示所有地方可以登陆的用户
mysql>
drop
user
‘wmh’
@
‘localhost’
;
—
删除用户Query OK,
0
rows affected (
0.00
sec)mysql>
select
user,host,authentication_string
from
user;+—————+———–+——————————————-+
| user | host | authentication_string |
+—————+———–+——————————————-+
| root | % | *A2F7C9D334175DE9AF4DB4F5473E0BD0F5FA9E75 |
| mysql
.session
| localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE || mysql
.sys
| localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |+—————+———–+——————————————-+
3
rows
in set
(
0.00
sec)
1.4 修改用户密码
语法:
自己改自己密码
set
password=password(
‘
新的密码
‘
);
root用户修改指定用户的密码
set password for ‘用户名’@’主机名’=password(‘新的密码’);
mysql>
select
host,user, authentication_string
from
user;+———–+—————+——————————————-+
| host | user | authentication_string |
+———–+—————+——————————————-+
| % | root | *A2F7C9D334175DE9AF4DB4F5473E0BD0F5FA9E75 |
| localhost | mysql
.session
| *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE || localhost | mysql
.sys
| *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE || localhost | wmh | *
84
AAC12F54AB666ECFC2A83C676908C8BBC381B1 |+———–+—————+——————————————-+
4
rows
in set
(
0.00
sec)mysql>
set
password for
‘wmh’
@
‘localhost’
=password(
‘87654321’
);Query OK,
0
rows affected,
1
warning (
0.00
sec)mysql>
select
host,user, authentication_string
from
user;+———–+—————+——————————————-+
| host | user | authentication_string |
+———–+—————+——————————————-+
| % | root | *A2F7C9D334175DE9AF4DB4F5473E0BD0F5FA9E75 |
| localhost | mysql
.session
| *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE || localhost | mysql
.sys
| *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE || localhost | wmh | *
5
D24C4D94238E65A6407DFAB95AA4EA97CA2B199 |+———–+—————+——————————————-+
4
rows
in set
(
0.00
sec)
2.数据库的权限
MySQL数据库提供的权限列表:
2.1 给用户授权
刚创建的用户没有任何权限。需要给用户授权。
语法
:
grant
权限列表
on
库
.
对象名
to
‘
用户名
‘
@
‘
登陆位置
‘
[identified
by
‘
密码
‘
]
说明:
权限列表,多个权限用逗号分开
*.*
:
代表本系统中的所有数据库的所有对象(表,视图,存储过程等)库
.*
:
表示某个数据库中的所有数据对象
(
表,视图,存储过程等
)identified by
可选。 如果用户存在,赋予权限的同时修改密码
,
如果该用户不存在,就是创建用户
案例:
—
使用
root
账号—
终端
Amysql> show databases;
+——————–+
| Database |
+——————–+
| information_schema |
|
57
test || bit_index |
| ccdata_pro |
| innodb_test |
| musicserver |
| myisam_test |
| mysql |
| order_sys |
| performance_schema |
| scott |
| sys |
| test |
| vod_system |
+——————–+
14
rows
in set
(
0.00
sec)mysql> use test;
Database changed
mysql> show tables;
+—————-+
| Tables_in_test |
+—————-+
| account |
| student |
| user |
+—————-+
3
rows
in set
(
0.01
sec)—
给用户
wmh
赋予
test
数据库下所有文件的
select
权限mysql> grant
select on
test.* to
‘wmh’
@
‘localhost’
;Query OK,
0
rows affected (
0.01
sec)—
使用
wmh
账号—
终端
Bmysql> show databases;
+——————–+
| Database |
+——————–+
| information_schema |
+——————–+
1
row
in set
(
0.00
sec)—
暂停等
root
用户给
wmh
赋完权之后,在查看mysql> show databases;
+——————–+
| Database |
+——————–+
| information_schema |
| test |
—
赋完权之后,就能看到新的表+——————–+
2
rows
in set
(
0.01
sec)mysql> use test;
Reading
table
information for completion of
table and
column namesYou can turn off this feature to get a quicker startup with -A
Database changed
mysql> show tables;
+—————-+
| Tables_in_test |
+—————-+
| account |
| student |
| user |
+—————-+
3
rows
in set
(
0.00
sec)mysql>
select
*
from
account;+—-+——–+———+
| id | name | blance |
+—-+——–+———+
|
2
|
李四
|
321.00
||
3
|
王五
|
5432.00
||
4
|
赵六
|
543.90
||
5
|
赵六
|
543.90
|+—-+——–+———+
4
rows
in set
(
0.00
sec)—
没有删除权限mysql>
delete from
account;ERROR
1142
(
42000
):
DELETE
command denied to user
‘wmh’
@
‘localhost’
for
table‘account’
备注:特定用户现有查看权限
mysql> show grants for
‘wmh’
@
‘%’
;+———————————————–+
| Grants for wmh@% |
+———————————————–+
| GRANT USAGE
ON
*.* TO
‘wmh’
@
‘%’
|| GRANT ALL PRIVILEGES
ON
`test`.* TO
‘wmh’
@
‘%’
|+———————————————–+
2
rows
in set
(
0.00
sec)mysql> show grants for
‘root’
@
‘%’
;+————————————————————-+
| Grants for root@% |
+————————————————————-+
| GRANT ALL PRIVILEGES
ON
*.* TO
‘root’
@
‘%’
WITH GRANT OPTION |+————————————————————-+
1
row
in set
(
0.00
sec)
注意:如果发现赋权限后,没有生效,执行如下指令:
flush privileges;
2.2 回收权限
语法 :
revoke
权限列表
on
库
.
对象名
from
‘
用户名
‘
@
‘
登陆位置
‘
;
示例:
—
回收
wmh
对
test
数据库的所有权限–root
身份,终端
Amysql> revoke all
on
test.*
from
‘wmh’
@
‘localhost’
;Query OK,
0
rows affected (
0.00
sec)–wmh
身份,终端
Bmysql> show databases;
+——————–+
| Database |
+——————–+
| information_schema |
| test |
+——————–+
2
rows
in set
(
0.00
sec)mysql> show databases;
+——————–+
| Database |
+——————–+
| information_schema |
+——————–+
1
row
in set
(
0.00
sec)
本文来自网络,不代表协通编程立场,如若转载,请注明出处:https://www.net2asp.com/846c6c2beb.html
