用户权限管理:
- 可以限制用户访问哪些库、哪些表
- 可以限制用户对哪些表执行SELECT、CREATE、DELETE、DELETE、ALTER等操作
- 可以限制用户登录的IP或域名
- 可以限制用户自己的权限是否可以授权给别的用
1.授权某个用户:
grant all privileges on . to ‘username1’@‘hostname1’ identified by ‘password’ with grant option;
all privileges:表示将所有权限授予给用户。也可指定具体的权限,如:SELECT、CREATE、DELETE、ALTER、DROP等。
on:表示这些权限对哪些数据库和表生效,格式:数据库名.表名,这里写“*”表示所有数据库,所有表。如果我要指定将权限应用到test_db库的student表中,可以这么写:test_db.teacher;
还可以将权限作用在表中的列上:
grant select(id, se, rank) on test_db.table1 to user1@localhost,这样user1用户可以对test_db .table1的id \se\rank列有select权限。
to:将权限授予哪个用户。格式:”用户名”@”登录IP或域名”。%表示没有限制,在任何主机都可以登录。比如:“user1”@"%",表示uesr1这个用户能在所有主机上登陆。
”yangxin”@”192.168.0.%”,表示yangxin这个用户只能在192.168.0IP段登录
identified by:指定用户的登录密码
with grant option:表示允许用户将自己的权限授权给其它用户
可以使用GRANT给用户添加权限,权限会自动叠加,不会覆盖之前授予的权限,比如你先给用户添加一个SELECT权限,后来又给用户添加了一个INSERT权限,那么该用户就同时拥有了SELECT和INSERT权限。
2、刷新权限:flush privileges
3、查看某个用户的权限:show grants for “username”@“ip or domain name”
4、回收某个用户的权限:
回收用户对所有数据库、表的select权限:remoke select on . for “usename”@“ip or domain name”;
回收所有权限:remoke all privileges on . for “username”@“ip or domain name”;
更改权限之后记得刷新权限。
5、删除某个用户:
drop user “test_user”@“localhost”;