首页 > 数据库 >《SQL基础》05. SQL-DCL

《SQL基础》05. SQL-DCL

时间:2023-01-16 21:34:48浏览次数:40  
标签:DCL 用户名 05 mysql 用户 主机名 USER SQL 权限

目录


DCL

用户管理

查询有哪些用户
1、
USE mysql;
SELECT * FROM user;
2、
SELECT * FROM mysql.user;

注:
在 MySQL 中,用户保存在 mysql 库中的 user 表中。

创建用户
CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码';

修改用户密码
ALTER USER '用户名'@'主机名' IDENTIFIED WITH mysql_native_password BY '新密码';

删除用户
DROP USER '用户名'@'主机名';

注:
在 MySQL 中需要通过“用户名@主机名”的方式,来唯一标识一个用户。
主机名可以使用 % 通配。
DCL 主要是 DBA(Database Administrator 数据库管理员)使用。

示例:

# 创建用户xiaoming,只能够在当前主机localhost访问,密码123456
CREATE USER 'xiaoming'@'localhost' IDENTIFIED BY '123456';

# 创建用户xiaohong, 可以在任意主机访问该数据库, 密码123456
CREATE USER 'xiaohong'@'%' IDENTIFIED BY '123456';

# 修改用户xiaohong的访问密码为1234
ALTER USER 'xiaohong'@'%' IDENTIFIED WITH mysql_native_password BY '1234';

# 删除 xiaoming@localhost 用户
DROP USER 'xiaoming'@'localhost';

权限控制

查询权限
SHOW GRANTS FOR '用户名'@'主机名';

授予权限
GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'主机名';

撤销权限
REVOKE 权限列表 ON 数据库名.表名 FROM '用户名'@'主机名';

注:
多个权限之间,使用逗号分隔。
授权时,数据库名和表名可以使用 * 进行通配,代表所有。

MySQL中定义了多种权限,常见的为以下几种:

--------------------------------------------------
权限                     |    说明
--------------------------------------------------
ALL 或 ALL PRIVILEGES    |    所有权限
SELECT                   |    查询数据
INSERT                   |    插入数据
UPDATE                   |    修改数据
DELETE                   |    删除数据
ALTER                    |    修改表
DROP                     |    删除数据库/表/视图
CREATE                   |    创建数据库/表
--------------------------------------------------

标签:DCL,用户名,05,mysql,用户,主机名,USER,SQL,权限
From: https://www.cnblogs.com/GCom/p/17056326.html

相关文章

  • 如何使用 ST05 事物码,快速找到访问指定数据库表的 ABAP 代码试读版
    在实际项目开发过程中,ABAP顾问可能会经常接到这类需求:调研SAP标准产品某个功能的具体实现位置,在此基础上做增强开发。比如下图是SAPCRM产品主数据管理应用的搜索页......
  • postgresql物理备份工具及lightdb支持情况
    因为postgresql自带的pg_basebackup比较原始,所以有很多三方备份工具,主要有:WAL-E。早期实现的物理备份工具,使用python编写,基于basebackup+wal持续归档,目前已经不维护......
  • SQL总结
    CommonTableExpressions(CTE)CTE介绍公用表表达式(CTE)是一个临时结果集,该结果集是从WITH子句中指定的简单查询派生而来的,该查询紧接在SELECT或INSERT关键字之前。CTE仅在......
  • mysql主从复制(基于docker容器化)
    拉取镜像不多说,直接从run开始,使用版本mysql5.71.新建主服务器容器实例3307dockerrun-p3307:3306--namemysql-master\-v/mydata/mysql-master/log:/var/log/m......
  • MySql通过父id递归向下查询子节点
    不用写存储过程,不用建数据库函数,一段sql就可以实现不用写存储过程,不用建数据库函数,一段sql就可以实现不用写存储过程,不用建数据库函数,一段sql就可以实现SELECT ID.LEVE......
  • Redis 缓存和 MySQL 如何实现数据一致性
    需求起因在高并发的业务场景下,数据库大多数情况都是用户并发访问最薄弱的环节。所以,就需要使用redis做一个缓冲操作,让请求先访问到redis,而不是直接访问MySQL等数据库。......
  • 【Java】Java连接Mysql数据库的demo示例
    【Java】Java连接Mysql数据库的demo示例1.安装mysql数据库2.下载java-mysql-connector.jar包3.完成java配置4.写java代码运行测试1.安装mysql数据库这里不多重复,我主要讲......
  • 【MySQL】全局锁、表级锁、行级锁
    [1]前言  索引列数据锁的设计主要用来解决并发带来的问题。当一个业务场景中出现多用户共享同一资源,当出现并发访问的时候,数据库需要合理的控制资源的访问规则,锁就是用......
  • 【MySQL】索引不会被使用的7种情况
    [1]隐式类型转换  索引列出现了隐式类型转换(​​ImplicitTypeConversion​​​),则​​MySQL​​​不会使用索引。常见的情况是,如果在​​SQL​​​的​​WHERE​​​......
  • 【MySQL思考】触发器是否应该在生产环境中使用?
    [1]触发器简单介绍  MySQL触发器​​trigger​​​是一种存储程序,它和一个指定的表相关联,当该表中的数据发生变化(增加、更新、删除)时自动执行。这些修改数据行的操作......