mysql查询管理用户列表_MySQL用户管理

MySQL的用户管理

用户账号格式username@hostname

查看帮助MySQL > help contents;

MySQL > help account management;

f66c45cf2105349f4b147975658a84a3.png

ece1549cb4e2af3082cba291ead12822.png

账号管理命令(此时权限很有限)create user

drop user

rename user

set password

权限管理命令:grant

revoke

查看创建用户命令帮助MySQL> help create user;

CREATE USER username@hostname

[

IDENTIFIED BY [PASSWORD] 'password'

]

主机也可以使用通配符:testuser@'172.16.100.1__'(172.16.100.100-172.16.100.199)

(两个下划线)

还可以使用%:testuser@'172.16.%.%'

查看用户能够使用的权限:show grants for username@'hostname'

97b3a3f242f3b74d8479b5c6b214a085.png

99e9557e63cff336d5e9af0d1f39f75b.png

224593dcf5a899236eda8cfa8b0a01f0.png

重命名MySQL > help rename user

RENAME USER old_user TO new_user

[, old_user TO new_user] ...

mysql > RENAME USER 'jeffrey'@'localhost' TO 'jeff'@'127.0.0.1';

为用户设置密码MySQL > help set password;

SET PASSWORD [FOR user] =

{

PASSWORD('cleartext password')

}

MySQL > set password for testuser@'172.16.%.%' = password('123456'); 调用password函数

MySQL的权限类型:

库级别

表级别

字段级别

管理类

程序类(存储过程,触发器,存储函数,时间调度器)

管理类权限

create temporary tables 临时表

create user

file 允许用户读或者写某些文件

lock tables 添加显式锁

process:查看用户的线程

reload:相当于执行flush和reset

replication client 查询有哪些复制客户端

replication slave 赋予用户复制权限

show databases

shutdown

super

数据库访问权限(库级别和表级别)

alter:modify tables with alter tables

alter routine 修改存储历程

create

create routine 存储过程,存储函数

create view

delete

drop

execute 是否能够执行存储过程,或存储函数

grant option 将自己的权限复制给别的用户

index 索引

show view

数据操作类权限(表级别)

select

insert

update

delete

字段级别:

select(col1,....)

update(col1,....)

insert(col1,....)

所有权限

ALL [privileges]

查看帮助MySQL > help GRANT

priv_type [(column_list)]

[, priv_type [(column_list)]] ...

ON [object_type] priv_level

TO user_specification [, user_specification] ...

[REQUIRE {NONE | ssl_option [[AND] ssl_option] ...}]

[WITH with_option ...]

object_type:(默认为表)

TABLE

| FUNCTION

| PROCEDURE

priv_level:

*

| *.*

| db_name.*

| db_name.tbl_name

| tbl_name

| db_name.routine_name

user_specification:

user

[

IDENTIFIED BY [PASSWORD] 'password'

| IDENTIFIED WITH auth_plugin [AS 'auth_string']

] //可以实现授权并添加密码

ssl_option:

SSL

...

with_option:

GRANT OPTION 转赠给别人

| MAX_QUERIES_PER_HOUR count 每小时允许执行的最大查询次数

| MAX_UPDATES_PER_HOUR count 每小时允许执行的最大更新次数

| MAX_CONNECTIONS_PER_HOUR count 每小时允许执行的最大连接次数

| MAX_USER_CONNECTIONS count 使用同一个账号可以同时连接的次数

实例给testuser用户授权

MySQL > grant create on testdb.* to testuser@'192.168.139.1__';

此时testuser只能创建testdb库

e39c32c8f07a54e9f9c86769c132c645.png

查看自己的权限

MySQL > show grants for testuser@'192.168.139.1__';

f176bc2f7a87e25b1e02b6998aa46526.png

4145149b67288ca9029d1533ec81f882.png

此时可以在该数据库下创建表,但是由于没有select和drop权限,

所以不能查看表数据及结构,不能删除表

给testuser用户删除表的权限

MySQL > grant drop  on testdb.* to testuser@'192.168.139.1__';

查看权限

MySQL > show grants for testuser@'192.168.139.1__';

834a7719cec7d618023c22a12215e9b7.png

给testuser用户增、删、查、改权限

MySQL > grant select,insert,update,delete  on testdb.* to testuser@'192.168.139.1__';

查看权限

MySQL > show grants for testuser@'192.168.139.1__';

cadb751177e4cf0ec13a575ca7c4b678.png

注意:要想创建库应该对所有表都有权限

收回授权MySQL > help REVOKE

priv_type [(column_list)]

[, priv_type [(column_list)]] ...

ON [object_type] priv_level

FROM user [, user] ...

REVOKE ALL PRIVILEGES, GRANT OPTION

FROM user [, user] ...

REVOKE PROXY ON user

FROM user [, user] ...

例子:MySQL > revoke insert,select on testdb.* from testuser@'192.168.139.1__';

查看权限

MySQL > show grants for testuser@'192.168.139.1__';

16a955faf6996b9db7077a5992d7a382.png

几个跟用户授权相关的表:(在mysql库中)db:库级别的权限

host:主机级别权限,已废弃

tables_priv:表级别权限

columns_priv:列级别的权限

procs_priv:存储过程和存储函数相关的权限

proxies_priv:代理用户权限·

MySQL的每一次操作几乎都要涉及权限管理检查,所以把授权表载入内存中(为了提升速度)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值