MySQL权限管理

权限

权限级别

权限说明

CREATE

数据库、表或索引

创建数据库、表或索引权限

DROP

数据库或表

删除数据库或表权限

GRANT OPTION

数据库、表或保存的程序

赋予权限选项

REFERENCES

数据库或表

 

ALTER

更改表,比如添加字段、索引等

DELETE

删除数据权限

INDEX

索引权限

INSERT

插入权限

SELECT

查询权限

UPDATE

更新权限

CREATE VIEW

视图

创建视图权限

SHOW VIEW

视图

查看视图权限

ALTER ROUTINE

存储过程

更改存储过程权限

CREATE ROUTINE

存储过程

创建存储过程权限

EXECUTE

存储过程

执行存储过程权限

FILE

服务器主机上的文件访问

文件访问权限

CREATE TEMPORARY TABLES

服务器管理

创建临时表权限

LOCK TABLES

服务器管理

锁表权限

CREATE USER

服务器管理

创建用户权限

PROCESS

服务器管理

查看进程权限

RELOAD

 

 

服务器管理

执行flush-hosts, flush-logs, flush-privileges, flush-status, flush-tables, flush-threads, refresh, reload等命令的权限

REPLICATION CLIENT

服务器管理

复制权限

REPLICATION SLAVE

服务器管理

复制权限

SHOW DATABASES

服务器管理

查看数据库权限

SHUTDOWN

服务器管理

关闭数据库权限

SUPER

服务器管理

执行kill线程权限

 

    MYSQL权限官方表:

权限分布

可能的设置的权限

表权限

'Select', 'Insert', 'Update', 'Delete', 'Create', 'Drop', 'Grant', 'References', 'Index', 'Alter'

列权限

'Select', 'Insert', 'Update', 'References'

过程权限

'Execute', 'Alter Routine', 'Grant'

 

 

GRANT命令使用说明:

grant all privileges on *.* to username@'localhost'identified by "username" with grant option;

 GRANT命令说明:
    ALL PRIVILEGES :是表示所有权限,你也可以使用其他权限。

    ON :用来指定权限针对哪些库和表。

    *.* :中前面的*号用来指定数据库名,后面的*号用来指定表名。

    TO 表示将权限赋予某个用户。

username@'localhost' :表示username用户,@后面接限制的主机,可以是IP、IP段、域名以及%,%表示任何地方。

    IDENTIFIED BY :指定用户的登录密码。

    WITH GRANTOPTION :这个选项表示该用户可以将自己拥有的权限授权给别人。

 

 

刷新权限:

>FLUSH PRIVILEGES;

 

 

查看权限:

查看当前用户的权限:

> show grants;

查看某个用户的权限:

> show grants for 'username'@'%';

 

 

回收权限:

> revoke delete on *.* from 'username'@'localhost';

 

 

删除用户:

> drop user 'username'@'localhost';

 

重命名账户:

> rename user 'username'@'%' to'jim'@'%';

 

 

修改密码(四种方法):

1、用set password命令

mysql> SET PASSWORD FOR 'root'@'localhost'= PASSWORD('123456');

Query OK, 0 rows affected (0.00sec)

2、用mysqladmin

# mysqladmin -uroot -p123 password 123456

格式:mysqladmin -u用户名 -p旧密码 password 新密码

3、用update直接编辑user表

> update mysql.user set PASSWORD =PASSWORD('1234abcd') where user = 'root';

> flush privileges;

4、在丢失root密码的时候:

# mysqld_safe --skip-grant-tables &

# mysql -u root

> update mysql.user set password =PASSWORD('123456') where user = 'root';

mysql> flush privileges;

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,这里为您提供一个MySQL权限管理的实例。 1. 创建用户并授权 首先,我们需要创建一个用户,并授予该用户可以操作某个数据库的权限。假设我们要创建一个名为 "test_user" 的用户,并授予该用户可以操作 "test_db" 数据库的权限,可以按照以下步骤操作: - 登录MySQL,并使用管理员账号进行操作: ``` mysql -u root -p ``` - 创建用户: ``` CREATE USER 'test_user'@'localhost' IDENTIFIED BY 'password'; ``` 其中,'test_user'为用户名,'localhost'表示该用户只能从本地连接MySQL,'password'为该用户的密码。 - 授予权限: ``` GRANT ALL PRIVILEGES ON test_db.* TO 'test_user'@'localhost'; ``` 其中,'test_db.*'表示我们授予该用户可以操作 "test_db" 数据库中的所有表;'test_user'为用户名,'localhost'表示该用户只能从本地连接MySQL。 2. 查看用户权限 我们可以使用以下命令查看某个用户的权限: ``` SHOW GRANTS FOR 'test_user'@'localhost'; ``` 其中,'test_user'为用户名,'localhost'表示该用户只能从本地连接MySQL。 3. 修改用户权限 我们可以使用以下命令修改某个用户的权限: - 授予权限: ``` GRANT SELECT, INSERT ON test_db.* TO 'test_user'@'localhost'; ``` 其中,'SELECT, INSERT'表示我们授予该用户可以执行SELECT和INSERT操作;'test_db.*'表示我们授予该用户可以操作 "test_db" 数据库中的所有表;'test_user'为用户名,'localhost'表示该用户只能从本地连接MySQL。 - 撤销权限: ``` REVOKE SELECT, INSERT ON test_db.* FROM 'test_user'@'localhost'; ``` 其中,'SELECT, INSERT'表示我们撤销该用户的SELECT和INSERT操作权限;'test_db.*'表示我们撤销该用户可以操作 "test_db" 数据库中的所有表的权限;'test_user'为用户名,'localhost'表示该用户只能从本地连接MySQL。 以上就是MySQL权限管理的一个实例,您可以根据自己的实际需求进行修改和操作。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值