MySQL:用户权限管理

禁止码迷,布布扣,豌豆代理,码农教程,爱码网等第三方爬虫网站爬取!

权限管理

当用户访问服务器时,我们需要对不同的用户设置不同的权限,例如我用户一拥有读写权限,而用户二只拥有读的权限。如果没有对权限进行限制,数据库将会被任意的用户随意的修改,例如“删库跑路”,将没有任何安全性可言。

创建和删除用户

查看用户名单

MySQL 用户的账号信息存储于 mysql 数据库中的 user 表中,可以用 SELECT 语句查看用户名单。

创建用户

使用 CREATE USER 命令可以创建一个用户账号,需要给出用户名和密码。

创建成功之后,就可以在 USER 表中看到。

当然也可以往表中插入行,但是保存用户信息的表是很重要的,直接插入的做法并不安全。

删除用户

使用 DROP USER 语句可以把用户删除。

更改数据

使用 RENAME USER 语句可以重命名。

使用 SET PASSWORD语句可以修改密码,其中密码必须拿去 Password() 函数进行加密。

访问权限

赋予权限

使用 SHOW GRANTS FOR 语句可以访问用户的权限,一般对于新创建的用户来说,没有任何权限,除了登录以外啥都做不了。

其中 “USAGE ON .” 就表示没有任何权限,为了设置权限需要使用 GRANT 语句来赋予。此时需要提供 3 个信息:赋予的权限、权限使用的数据库或表、用户名,语法框架为:

GRANT 权限名 ON 数据库和表名 TO 用户名;

例如我赋予用户在数据库中所有表使用 SELECT 的权限。

撤销权限

撤销权限是赋予权限的反操作,可以使用 REVOKE 语句实现。

权限列表

使用 SHOW 语句可以查看。

SHOW PRIVILEGES;

选用字符集

字符集

对于数据库的用户,可能使用英文或者中文,不同的语言需要用不同的字符集来存储。所谓字符集就是字母和符号的集合,MySQL 支持不同的字符集,编码指的是某个字符集成员的内部表示,校对指定了字符集如何比较。
查看可使用的字符集,可以使用 SHOW 语句查看可使用的字符集和校对顺序:

SHOW CHARACTER SET;
SHOW COLLATION;

前者查看字符集:

后者查看校对顺序:

字符集和校对顺序的设置

对数据库设置

在创建数据库时,可以设置默认的字符集和校对顺序。

SHOW VARIABLES LIKE 'character%';
SHOW VARIABLES LIKE 'collarion%';

对表设置

对表设置字符集,需要将信息跟在 CREATE 语句之后,如果没有指定就会使用默认的设置。

CREATE TABLE table_name
(
    ……
)
DEFAULT CHARACTER SET 'character%'
        COLLATION 'collarion%';

对列设置

如果要对列设置,需要在 CREATE 语句中指定。

CREATE TABLE table_name
(
    column_name VARCHAR(10) CHARACTER SET 'character%'
                         COLLATION 'collarion%';
)

检索时设置

如果在检索时需要使用某种校对顺序来排序,可以在 ORDER BY 语句后设置。

ORDER BY variable… COLLATION 'collarion%';

当然了,在 GROUP BY、HAVING、聚集函数和别名都可以指定校对顺序。

参考资料

《MySQL Crash Course》[英] Ben Forta 著,刘晓霞 钟鸣 译,人民邮电出版社

原文地址:https://www.cnblogs.com/linfangnan/p/14699389.html