语句格式: GRANT 权限 ON TABLE/DATABASE 表名/数据库名 TO 用户1,用户2… /PUBLIC [WITH GRANT OPTION]; PUBLIC:表示将权限授予所有人 WITH GRANT OPTION:表示获得了这个权限的用户还可以将权限赋给其他用户。
对象 |
对象类型 |
操作权限 |
属性 |
TABLE |
SELECT,INSERT,UPDATE,DELETE, ALL PRIVILEGES(4种权限的总和) |
视图 |
TABLE |
SELECT,INSERT,UPDATE,DELETE, ALL PRIVILEGES(4种权限的总和 |
基本表 |
TABLE |
SELECT,INSERT,UPDATE,DELETE,ALTER,INDEX, ALL PRIVILEGES(6种权限的总 |
数据库 |
DATABASE |
CREATETAB建立表的权限,可由DBA授予普通用户 |
语句格式: REVOKE 权限 ON TABLE/DATABASE 表名/数据库名 FROM 用户1,用户2… /PUBLIC [RESTRICT | CASCADE]; RESTRICT:表示只收回语句中指定的用户的权限 CASCADE:表示除了收回指定用户的权限外,还收回该用户赋予的其他用户的权限。
例:将用户User1及User2对供应商S、零件P、项目J的所有操作权限收回:
REVOKE ALL PRIVILEGES ON TABLE S,P,J FROM User1,User2;
将所有用户对供应商S的所有查询权限收回:
REVOKE SELECT ON TABLE S FROM PUBLIC;
将User1用户对供应商S的供应商编号Sno的修改权限收回。
REVOKE UPDATE(Sno) ON TABLE S FROM User1;
(1)当数据库程序员声明的事件发生时,触发器被激活。声明的事件可以是对某个特定关系的插入、删除或更
新。
(2)当触发器被事件激活时,不是立即执行,而是首先由触发器测试触发条件,如果事件不成立,响应该事件
的触发器什么都不做。
(3)如果触发器声明的条件满足,则与该触发器相连的动作由DBMS执行。动作可以阻止事件发生,可以撤销事
件。
(1)触发器名称
(2)在其上定义触发器的表
(3)触发事件:触发器将何时激发
(3)触发条件:满足什么条件时执行触发动作
(4)触发动作:指明触发器执行时应做的动作 • 触发器可以引用当前数据库以外的对象,但只能在当前数据库中创建触发器。 • 不能在临时表或系统表上创建触发器,但触发器可以引用临时表。
CREATE TRIGGER 触发器名称 [BEFORE | AFTER] [DELETE | INSERT | UPDATE OF 列名] //触发事件 ON 表名 [REFERENCING <临时视图名>] [FOR EACH ROW | FOR EACH STATEMENT] [WHEN <触发条件>] //WHEN后面跟触发条件,指明当什么条件满足时,执行下面的触发动作 BEGIN <触发动作> //BEGIN...END 中定义触发动作,即当触发条件满足时,需要数据库做什么 END [触发器名称]
语句格式: ALTER TRIGGER <触发器名> [BEFORE|AFTER] DELETE|INSERT|UPDATE OF [列名] ON 表名|视图名 AS BEGIN 要执行的SQL语句 END
语句格式: DROP TRIGGER <触发器名>