【数据库原理】(14)数据控制

数据控制也称为数据保护,包括数据的安全性控制、完整性控制、并发控制和恢复。

数据库的安全性是指保护数据库,防止不合法的使用所造成的数据泄露和破坏。数据库系统中保证数据安全性的主要措施是进行存取控制,即规定不同用户对不同数据对象所允许的执行操作,并规定用户只能存取其权限内的数据。

一.授权(GRANT)

授权使用 GRANT 语句,允许数据库管理员或具有足够权限的用户将特定数据对象的特定操作权限授予其他用户。

其一般格式为:

SQL 复制代码
GRANT <权限>[,<权限>]...
	[ON<对象类型><对象名>]
	TO<用户>[,<用户>]...
	[WITH GRANT OPTION]:

不同类型的操作对象有不同的操作权限,如表所示。

接受权限的用户可以是一个或多个具体用户,也可以是 PUBLIC(表示全体用户)。

如果指定了 WITH GRANT OPTION 子句,则获得某种权限的用户还可以把这种权限再授予别的用户;如果没有指定 WITH GRANT OPTION子句,则获得某种权限的用户只能使用该权限,但不能传播该权限。

授予用户 U1 和 U2 对 C 表和 S 表的全部权限:

SQL 复制代码
GRANT ALL PRIVIEGES ON TABLE C,S TO UL,U2;

授予用户 U3 对 C 表的查询和修改 Cname 权限,并允许其将此权限授予其他用户:

SQL 复制代码
GRANT SELECT,UPDATE(Cname) ON TABLE C TO U3
WITH GRANT OPTION;

授予用户 U3 在数据库 S 中建立表的权限:

SQL 复制代码
GRANT CREATETAB ON DATABASE S TO U3;

注意:

  • 不同类型的操作对象有不同的操作权限。
  • WITH GRANT OPTION 允许用户再次授予其所获得的权限。
  • 数据库和表权限的授予需分开进行。

二.收回权限(REVOKE)

已授予的权限可以通过 REVOKE 语句被收回。

其一般格式为:

SQL 复制代码
REVOKE <权限>[,<权限>]...
	[ON<对象类型><对象名>]
	FROM<用户>[,<用户>]... ;

把用户 U1 对 C 表和S 表的全部权限收回

SQL 复制代码
REVOKE ALL PRIVIEGES ON TABLE C,S FROM Ul;

把用户 U3 的修改 Cname 的权限收回

SQL 复制代码
REVOKE UPDATE(Cname) ON TABLE C FROM U3:

注意:

  • 如果用户已将其权限授予其他用户,收回时会级联影响这些用户。
  • DBA 拥有所有权限,可以授予和收回任何权限。
  • 系统仅收回从特定用户处直接或间接获得的权限。
相关推荐
Nontee2 小时前
MySQL 插入冲突了怎么办?两种处理方式入门笔记
数据库·笔记·mysql
ltl2 小时前
Parquet 文件格式:row group、编码与谓词下推索引
数据库
ltl2 小时前
PostgreSQL Join 路径:优化器如何选中 Nested Loop
数据库
ltl2 小时前
RocksDB 生产嵌入:Flink、TiKV 与 Kafka Streams 怎么用
数据库
devilnumber4 小时前
MySQL 性能优化・诗意化记忆
数据库·mysql·性能优化
瀚高PG实验室4 小时前
PostgreSQL pg_basebackup 和 pg_rewind 可覆盖源端超级用户选择的无关文件HGVE-2026-E010
数据库·postgresql·瀚高数据库
OceanBase数据库官方博客6 小时前
亮相“十五五”公积金高质量发展大会“AI 数据库”助力智慧公积金升级
数据库·人工智能
龙虾PRO7 小时前
高并发场景数据库调优实操:目标定位、监控方法与优化维度全解析
数据库·oracle
达梦产品与服务7 小时前
SQLark 实战 | 高频 SQL 脚本的导入、管理与复用
数据库·sql·数据库开发·数据库运维·脚本管理·sqlark百灵连接·sql脚本
InfinitePlus8 小时前
redis数据持久化
数据库·redis·缓存