MySQL:用户权限管理

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

权限管理#

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

创建和删除用户#

查看用户名单#

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

创建用户#

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

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

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

删除用户#

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

更改数据#

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

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

访问权限#

赋予权限#

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

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

Copy Highlighter-hljs
GRANT 权限名 ON 数据库和表名 TO 用户名;

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

撤销权限#

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

权限列表#

使用 SHOW 语句可以查看。

Copy Highlighter-hljs
SHOW PRIVILEGES;

选用字符集#

字符集#

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

Copy Highlighter-hljs
SHOW CHARACTER SET; SHOW COLLATION;

前者查看字符集:

后者查看校对顺序:

字符集和校对顺序的设置#

对数据库设置#

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

Copy Highlighter-hljs
SHOW VARIABLES LIKE 'character%'; SHOW VARIABLES LIKE 'collarion%';

对表设置#

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

Copy Highlighter-hljs
CREATE TABLE table_name ( …… ) DEFAULT CHARACTER SET 'character%' COLLATION 'collarion%';

对列设置#

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

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

检索时设置#

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

Copy Highlighter-hljs
ORDER BY variable… COLLATION 'collarion%';

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

参考资料#

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

posted @   乌漆WhiteMoon  阅读(156)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2020-04-25 Wireshark实验——DNS 域名系统
点击右上角即可分享
微信分享提示
CONTENTS