引用代码:
使用mysql数据库
USE mysql
-创建用户
createusermyuseridentifiedby‘my pass‘;
-查看用户
SELECT user,host,authentic ation _ stringfromuserwhereuser=‘my user’;
-更改用户密码
updateusersetauthentication _ string=‘‘where user=‘my user’;
alter user‘my user‘@“%”identified by‘my pass‘;
-删除用户
DROP USER myuser;
-查看权限
SHOW GRANTS FOR myuser;
-授予权限
- grantallprivilegesondatabasename.tablename to‘user’@‘host’identified by‘password’;
将所有全局级别的权限授予myuser用户:
grantallprivilegeson *.* to‘my user‘@“%”identified by‘my pass‘withgrantoption;
授予myuser用户对testdb数据库的所有权限:
grantallprivilegesontestdb.* to‘my user’
-生效()更新权限) ) ) )。
flush权限;
-取消权限
- revokeprivilegesondatabasename.tablename from‘username‘@‘host’;
恢复所有权限从my user;
授权命令说明:
权限列表可以是表示所有权限的all priveleges,也可以是select、update等的权限。 多个权限的名词相互之间用逗号隔开。
on指定要访问的库和表。
. *中前面的*号用于指定数据库名,后面的*号用于指定表名。
to意味着将权限授予某个用户,后面跟有@的主机可以是IP、IP段、域名以及%,%或任何地方。 注意:其中%的版本有不包含本地的版本。 我以前遇到过一个人,他给某个用户设置了%,以便他可以在任何地方登录,但不能在本地登录。 这和版本有关。 遇到这个问题,再添加一个localhost的用户就可以了。
identified by指定用户的登录密码。 这个项目可以省略。
“使用授权选项”选项表示该用户可以允许其他人拥有自己的权限。 注:如果在创建操作用户时未指定WITH GRANT OPTION选项,则之后用户经常无法使用GRANT命令创建用户或授予其他用户权限。
备注:可以使用授权向用户重复添加权限。 权限重叠了。 例如,如果向用户添加了select权限,然后向用户添加了insert权限,则该用户同时具有select和insert权限。
许可证策略说明:
权限管理主要出于安全原因,因此必须遵循以下几个经验法则:
a、只给予满足需求的最小权限,防止用户作恶。 例如,如果用户只需要查询,则只需要授予select权限,而不要授予用户更新、插入或删除权限。
b、创建用户时限制用户的登录主机,通常限制为指定的IP或内部网IP段。
c、初始化数据库时删除没有密码的用户。 数据库安装完成后,默认情况下将自动创建没有密码的用户。
d .为每个用户设置满足密码复杂性的密码。
e、定期清理不需要的用户。 恢复权限或删除用户。