MySQL 数据库权限简单管理

mysql 数据库授权
授权命令GRANT 语句的语法如下:
GRANT privileges (columns)
ON what
TO user IDENTIFIEDBY “password”
WITH GRANT OPTION ;
FLUSH PRIVILEGES;

一、普通用户授权

查询、插入、更新、删除:

GRANT select ON *.* to username@'%';
GRANT insert ON *.* to username@'%';
GRANT update ON *.* to username@'%';
GRANT delete ON *.* to username@'%';

用一条命令来替代:

GRANT select, insert, update, delete ON testdb.* to username@'%';

管理某个MySQL数据库权限:

GRANT all privileges ON testdb to username@'localhost';
FLUSH PRIVILEGES; 

二、高级DBA管理MySQL中所有数据库的权限:

GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost' IDENTIFIED BY 'passwd' WITH GRANT OPTION;
FLUSH PRIVILEGES; 

三、查看 MySQL 用户权限

查看当前用户权限:

show grants;

查看其他用户权限:

show grants for username@localhost;

四、撤销用户权限:

revoke all ON *.* from username@localhost;
FLUSH PRIVILEGES; 

五、实例操作

1.增加用户test1

密码为passwd, 让他只可以在localhost上登录,并可以对数据库mydb进行查询、插入、修改、删除的操作。

GRANT select,insert,update,delete ON mydb.* to test2@localhost identified by "passwd"; 
FLUSH PRIVILEGES; 

2.增加用户test2

密码为passwd,可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。

GRANT select,insert,update,delete ON *.* to test1@'%' Identified by "passwd"; 
FLUSH PRIVILEGES; 

3.增加用户test3

密码为passwd,仅在172.27.11.222主机上登录,并对所有数据库有查询、插入、修改、删除的权限。

GRANT select,insert,update,delete ON *.* to test1@'172.27.11.222' Identified by "passwd"; 
FLUSH PRIVILEGES; 

权限说明:

1.select、insert、update和delete权限允许你在一个数据库现有的表上实施操作,是基本权限
2.alter权限允许你使用ALTER TABLE
3.create和drop权限允许你创建新的数据库和表,或抛弃(删除)现存的数据库和表,如果将mysql数据库的drop权限授予一个用户,该用户能抛弃存储了MySQL存取权限的数据库!
4.grant权限允许你把你自己拥有的那些权限授给其他的用户。

例如:
用户能读取和修改已有表的内容,不允许创建新表或删除表,可按如下授权:
GRANT SELECT,INSERT,DELETE,UPDATE ON test_db.* TO ‘user’@’%’ IDENTIFIEDBY “pass”

mysql授权表共有5个表:user、db、host、tables_priv和columns_priv。

授权表说明:

user表:
user表列出可以连接服务器的用户及其口令,并且它指定他们有哪种全局(超级用户)权限。在user表启用的任何权限均是全局权限,并适用于所有数据库。例如,如果你启用了DELETE权限,在这里列出的用户可以从任何表中删除记录,所以在你这样做之前要认真考虑。

db表:
db表列出数据库,而用户有权限访问它们。在这里指定的权限适用于一个数据库中的所有表。

host表:
host表与db表结合使用在一个较好层次上控制特定主机对数据库的访问权限,这可能比单独使用db好些。这个表不受GRANT和REVOKE语句的影响,所以,你可能发觉你根本不是用它。

tables_priv表:
tables_priv表指定表级权限,在这里指定的一个权限适用于一个表的所有列。

columns_priv表:
columns_priv表指定列级权限。这里指定的权限适用于一个表的特定列。

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/cy309173854/article/details/77683679
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭