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

目录

  • 权限管理
    • 赋予权限
    • 撤销权限
    • 权限列表
    • 查看用户名单
    • 创建用户
    • 删除用户
    • 更改数据
    • 创建和删除用户
    • 访问权限
  • 选用字符集
    • 对数据库设置
    • 对表设置
    • 对列设置
    • 检索时设置
    • 字符集
    • 字符集和校对顺序的设置
  • 参考资料


权限管理

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

创建和删除用户

查看用户名单

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

创建用户

使用 CREATE USER 命令可以创建一个用户账号,需要给出用户名和密码。
MySQL:用户权限管理_MySQL_02
创建成功之后,就可以在 USER 表中看到。
MySQL:用户权限管理_MySQL_03
当然也可以往表中插入行,但是保存用户信息的表是很重要的,直接插入的做法并不安全。

删除用户

使用 DROP USER 语句可以把用户删除。
MySQL:用户权限管理_MySQL_04

更改数据

使用 RENAME USER 语句可以重命名。
MySQL:用户权限管理_MySQL_05
使用 SET PASSWORD语句可以修改密码,其中密码必须拿去 Password() 函数进行加密。
MySQL:用户权限管理_MySQL_06

访问权限

赋予权限

使用 SHOW GRANTS FOR 语句可以访问用户的权限,一般对于新创建的用户来说,没有任何权限,除了登录以外啥都做不了。
MySQL:用户权限管理_MySQL_07
其中 “USAGE ON .” 就表示没有任何权限,为了设置权限需要使用 GRANT 语句来赋予。此时需要提供 3 个信息:赋予的权限、权限使用的数据库或表、用户名,语法框架为:

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

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

撤销权限

撤销权限是赋予权限的反操作,可以使用 REVOKE 语句实现。
MySQL:用户权限管理_MySQL_09

权限列表

使用 SHOW 语句可以查看。

SHOW PRIVILEGES;

MySQL:用户权限管理_MySQL_10

选用字符集

字符集

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

SHOW CHARACTER SET;
SHOW COLLATION;

前者查看字符集:
MySQL:用户权限管理_MySQL_11
后者查看校对顺序:
MySQL:用户权限管理_MySQL_12

字符集和校对顺序的设置

对数据库设置

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

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、聚集函数和别名都可以指定校对顺序。