用户管理(DBA命令)
创建登录名
CREATE LOGIN 登录名 PASSWORD=’密码’
创建数据库用户名
CREATE USER 用户名 FOR LOGIN 登录名
赋予操作权限
GRANT 操作权限 ON 表名 TO 用户名
回收操作权限
REVOKE 操作权限 ON 表名 TO 用户名
角色:事先定义好的一组权限
https://www.51zxw.net/List.aspx?cid=492
新建用户
CREATE USER username IDENTIFIED BY 'password';
说明:username——你将创建的用户名, password——该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器.
例如:
create user p361 identified by '123';
--可以登录但是只可以看见一个库 information_schema
授权
mysql>
grant
all privileges 增删改查的一个或者全部
on dbname.tbname 允许对哪些数据库、数据表
to 'username' 新用户的名字
@'login ip' 登入的ip
identified by 'password' 密码
with grant option; 有无授权的权利
-
dbname=*表示所有数据库
-
tbname=*表示所有表
-
login ip=%表示任何ip
-
password 为空,表示不需要密码即可登录
-
with grant option; 表示该用户还可以授权给其他用户
细粒度授权
首先以 root 用户进入 mysql
然后键入命令:
grant select,insert,update,delete 给增删改查的权利
on *.* 对全部数据库和表
to p361 用户名叫p361
@localhost 本机登入
Identified by "123"; 密码123
如果希望该用户能够在任何机器上登陆 mysql,则将 localhost 改为 "%"。
粗粒度授权
测试用户一般使用该命令授权,
GRANT ALL PRIVILEGES
ON *.*
TO 'p361'
@'%'
/Identified by "123";
注意:用以上命令授权的用户不能给其它用户授权,如果想让该用户可以授权,用以下命令:
GRANT ALL PRIVILEGES
ON *.*
TO 'p361'
@'%'
Identified by "123"
WITH GRANT OPTION;
ALL PRIVILEGES和给增删改查4个权限有啥区别?
privileges 包括:
1)alter:修改数据库的表
-
create:创建新的数据库或表
-
delete:删除表数据
-
drop:删除数据库/表
-
index:创建/删除索引
-
insert:添加表数据
-
select:查询表数据
-
update:更新表数据
-
all:允许任何操作
-
usage:只允许登录
也就是说在grant后面可以跟这些字段
回收权限
revoke privileges on dbname[.tbname] from username;
revoke all privileges
on *.*
from p361;
use mysql
select * from user
进入 mysql 库中
修改密码;
update user
set password = password('qwe')
where user = 'p646';
刷新权限;
flush privileges
💬 评论