- GRANT:授予用户对特定对象(表、视图、过程等)的权限。
- REVOKE:撤销之前授予的权限。
- ALTER:修改用户权限,例如更改权限级别或添加/删除权限。
创建和管理角色
- CREATE ROLE:创建具有特定权限集合的新角色。
- ALTER ROLE:修改现有角色的权限或成员身份。
- DROP ROLE:删除不再需要的角色。
管理用户和组
- CREATE USER:创建新用户并指定其默认模式和密码。
- ALTER USER:修改用户属性,例如密码、默认模式或锁定状态。
- DROP USER:删除不再需要的用户。
- CREATE GROUP:创建新组并为其分配成员。
- ALTER GROUP:修改组属性,例如添加/删除成员或更改组模式。
- DROP GROUP:删除不再需要的组。
控制数据访问
- COMMIT:提交已执行的事务,使更改永久化。
- ROLLBACK:回滚未提交的事务,撤消所做的更改。
- SAVEPOINT:设置一个事务内的保存点,以便在必要时回滚到该特定点。
- SET TRANSACTION:配置事务行为,例如隔离级别和超时。
管理数据库对象
- CREATE DATABASE:创建新数据库并指定其属性。
- ALTER DATABASE:修改现有数据库的属性,例如名称、所有者或默认字符集。
- DROP DATABASE:删除不再需要的数据库。
审计和安全性
- AUDIT:监视对特定数据库对象的访问并记录审计信息。
- REVOKE ALL:撤销用户对所有对象的访问权限。
- SET ROLE:将当前会话的角色切换到指定的特定角色。
示例
以下是使用 DCL 的一些示例:
- 授予用户
john
对表customers
的SELECT
和UPDATE
权限:GRANT SELECT, UPDATE ON customers TO john;
- 创建一个名为
admins
的角色并授予其对所有表的SELECT
权限:CREATE ROLE admins; GRANT SELECT ON ALL TABLES TO admins;
- 删除用户
guest
:DROP USER guest;
- 提交当前事务:
COMMIT;
- 设置事务隔离级别为读已提交:
SET TRANSACTION ISOLATION LEVEL READ COMMITTED;
- 创建新数据库并将其命名为
sales_db
:CREATE DATABASE sales_db;
通过掌握 DCL,你可以精细控制数据库访问,确保数据安全,并最大化数据库的效率。它是一个强大的工具,可以让你充分利用数据库的潜力。