900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > Mysql 数据库创建用户 管理用户权限

Mysql 数据库创建用户 管理用户权限

时间:2018-09-11 19:20:25

相关推荐

Mysql 数据库创建用户 管理用户权限

一、创建用户

为什么要创建不同的用户呢?

因为root用户权限太大,为了安全起见,创建不同的用户,并赋予不同的权限,可以有效保证数据库的安全。

1、使用 root 用户登录 Mysql

mysql -u root -p

注意:

mysql -u root -p后面加密码的话,-p和密码之间不能有空格

如密码是:123456应写成mysql -u root -p123456,否则会报错

2、创建用户

mysql> create user admin identified by '123456';Query OK, 0 rows affected (0.00 sec)

admin即为新用户的用户名

123456即为新用户的登录密码

3、为创建的用户赋予权限

语法:

GRANT <权限>[, <权限>]…[ON <对象类型><对象名>]

TO <用户> [, <用户>] [ WITH GRANT OPTION];

若在授权语句中指定了WITH GRANT OPTION子句,那么,获得了权限的用户还可以将该权限赋予其他用户。

# 将 Student 表的插入权限赋予用户 UserA,并允许其将该权限授予他人GRANT INSERT ON TABLE Student TO UserA WITH GRANT OPTION;

# 将 myweb 数据库的所有权限赋予 admin,赋予所有IP远程登陆的权限mysql> grant all privileges on myweb.* to 'admin'@'%';Query OK, 0 rows affected (0.00 sec)

myweb即为指定的数据库

%即表示无论此用户以哪个IP操作都可以操作

4、刷新数据库

mysql> flush privileges;Query OK, 0 rows affected (0.00 sec)

5、查看用户的权限

通过show grants命令查看权限授予执行的命令:

mysql> show grants for 'admin';+--------------------------------------------------+| Grants for admin@% |+--------------------------------------------------+| GRANT USAGE ON *.* TO 'admin'@'%'|| GRANT ALL PRIVILEGES ON `myweb`.* TO 'admin'@'%' |+--------------------------------------------------+2 rows in set (0.00 sec)

此时admin用户已经拥有了对myweb数据库的所有权限。

再次验证admin用户是否已经拥有了myweb数据库的所有权限。

mysql> select User,Db,host,Select_priv,Insert_priv,Update_priv,Delete_priv from mysql.db where User='admin';+-------+-------+------+-------------+-------------+-------------+-------------+| User | Db | host | Select_priv | Insert_priv | Update_priv | Delete_priv |+-------+-------+------+-------------+-------------+-------------+-------------+| admin | myweb | % | Y | Y | Y | Y |+-------+-------+------+-------------+-------------+-------------+-------------+1 row in set (0.00 sec)

6、以 admin 帐户登录

此时admin登录成功

查看所有的数据库,只有myweb库可用

对比root帐户,myweb库只是其中之一

二、修改指定用户的权限

1、删除指定用户的权限

删除用户权限可以通过语句revoke完成

Revoke permission on ‘database’,’tables’ from ‘username’@’host’

# 收回用户 admin 远程登录的 myweb 权限,只能以 192.168.*.* 登录;mysql> revoke drop on myweb.* from admin@'192.168.%.%';# 收回用户 admin 本地登录的 myweb 权限,如下几种写法均可;mysql> revoke select,create,delete,grant option on myweb.* from 'admin'@'localhost';mysql> revoke all privileges,grant option from 'admin'@'localhost';mysql> revoke all privileges on myweb.* from 'admin'@'localhost';mysql> revoke grant option on myweb.* from 'admin'@'localhost';

2、添加指定用户的权限

# 给admin用户添加对goods的所有权限,赋予远程登陆的权限grant all privileges on goods.* to 'admin'@'%';# 给admin用户添加对goods的所有权限,赋予本地登录的权限grant all privileges on goods.* to 'admin'@'localhost';

3、修改用户密码

# 修改 admin 的本地登录密码为 abcdefmysql> alter user 'admin'@'localhost' identified by 'abcdef';Query OK, 0 rows affected (0.00 sec)# % 代表任意 ip,localhost 代表只有本地能登录# 修改 admin 远程登录密码为 abcdefmysql> set password for 'dayi'@'%'=password('abcdef');Query OK, 0 rows affected (0.00 sec)

三、删除用户

1、查询所有的用户信息

select user,host from mysql.user;

2、删除指定用户

mysql> DROP USER 'admin'@'%';Query OK, 0 rows affected (0.00 sec)

针对文章可能存在的一些不足之处,请大佬指出,经核实以后会尽快对文章进行修改,感谢您的支持!!!

参考资料

[1].百度.更多关于MySQL数据库权限类型(PrivilegesCode).[DB/OL].-07-13[2].博客园.MySQL用户管理:添加用户、授权、删除用户[3].博客园.MySQL数据库中创建新用户,并将某个指定库的操作权限赋予此用户。。。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。