《第12章安全管理》由会员分享,可在线阅读,更多相关《第12章安全管理(87页珍藏版)》请在金锄头文库上搜索。
1、第12章 安全管理 主要内容 l用户管理 l权限管理 l角色管理 l概要文件管理 l审计 l案例数据库安全控制的实现 12.1 用户管理 l用户管理概述 l创建用户 l修改用户 l用户的锁定与解锁 l删除用户 l查询用户信息 12.1.1用户管理概述 lSYS:是数据库中具有最高权限的数据库管理员,可以启 动、修改和关闭数据库,拥有数据字典; lSYSTEM:是一个辅助的数据库管理员,不能启动和关闭 数据库,但可以进行其他一些管理工作,如创建用户、删 除用户等。 lSYSMAN:是OEM的管理员用户,可以对OEM进行配置 和管理。 lDBSNMP:是OEM代理用来监视和管理数据库的用户。 lP
2、UBLIC:实质上是一个用户组,数据库中任何一个用户 都属于该组成员。要为数据库中每个用户都授予某个权限 ,只需把权限授予PUBLIC就可以了。 12.1.2.创建用户 l基本语法 CREATE USER user_name IDENTIFIED BY password|EXTERNALLY|GLOBALLY AS external_name DEFAULT TABLESPACE tablespace_name TEMPORARY TABLESPACE temp_tablesapce_name QUOTA n K|M|UNLIMITED ON tablespace_name PROFILE p
3、rofile_name PASSWORD EXPIRE ACCOUNT LOCK|UNLOCK; l参数说明 user_name:用于设置新建用户名,在数据库中用户名必须是 唯一的; IDENTIFIED:用于指明用户身份认证方式; BY password:用于设置用户的数据库身份认证,其中 password为用户口令; EXTERNALLY:用于设置用户的外部身份认证; GLOBALLY ASexternal_name:用于设置用户的全局身 份认证,其中external_name为Oracle的安全管理服务器相 关信息; DEFAULT TABLESPACE:用于设置用户的默认表空间,如果
4、没有指定,Oracle将数据库默认表空间作为用户的默认表空间; TEMPORARY TABLESPACE:用于设置用户的临时表空间; QUOTA:用于指定用户在特定表空间上的配额,即用户在该表 空间中可以分配的最大 空间; PROFILE:用于为用户指定概要文件,默认值为DEFAULT, 采用系统默认的概要文件; PASSWORD EXPIRE:用于设置用户口令的初始状态为过期 ,用户在首次登录数据库时必须修改口令; ACCOUNT LOCK:用于设置用户初始状态为锁定,默认为不锁 定; ACCOUNT UNLOCK:用于设置用户初始状态为不锁定或解除 用户的锁定状态 l注意 在创建新用户后,
5、必须为用户授予适当的权限,用户 才可以进行相应的数据库操作。例如,授予用户 CREATE SESSION权限后,用户才可以连接到数据 库。 l创建一个用户user1,口令为user1,默认表空间 为USERS,在该表空间的配额为10MB,初始状 态为锁定。 CREATE USER user1 IDENTIFIED BY user1 DEFAULT TABLESPACE USERS QUOTA 10M ON USERS ACCOUNT LOCK; l创建一个用户user2,口令为user2,默认表空间 为USERS,在该表空间的配额为10MB。口令设 置为过期状态,即首次连接数据库时需要修改口
6、令。概要文件为example_profile(假设该概要 文件已经创建)。 CREATE USER user2 IDENTIFIED BY user2 DEFAULT TABLESPACE USERS QUOTA 10M ON USERS PROFILE example_profile PASSWORD EXPIRE; l基本语法 ALTER USER user_name IDENTIFIED BY password|EXTERNALLY|GLOBALLY AS external_name DEFAULT TABLESPACE tablespace_name TEMPORARY TABLESP
7、ACE temp_tablesapce_name QUOTA n K|M|UNLIMITED ON tablespace_name PROFILE profile_name DEFAULT ROLE role_list|ALL EXCEPT role_list |NONE PASSWORD EXPIRE ACCOUNT LOCK|UNLOCK; 12.1.3 修改用户 l参数说明 role_list:角色列表; ALL :表示所有角色; EXCEPT role_list:表示除了role_list列表中的角 色之外的其他角色; NONE:表示没有默认角色。 l注意,指定的角色必须是使用GRAN
8、T命令直接授 予该用户的角色。 l将用户user1的口令修改为newuser1,同时将 该用户解锁。 ALTER USER user1 IDENTIFIED BY newuser1 ACCOUNT UNLOCK; l修改用户user2的默认表空间为ORCLTBS1,在 该表空间的配额为20MB,在USERS表空间的配 额为10MB。 ALTER USER user4 DEFAULT TABLESPACE ORCLTBS1 QUOTA 20M ON ORCLTBS1 QUOTA 10M ON USERS; 12.1.4 用户的锁定与解锁 l用户的锁定与解锁 某个用户暂时离开工作 某个用户永久离开
9、工作 应用程序开发过程中使用的一些数据库用户账户 DBA创建的特殊用户帐户 l示例 ALTER USER oe ACCOUNT LOCK; ALTER USER scott ACCOUNT UNLOCK; 12.1.5删除用户 l基本语法 DROP USER user_name CASCADE ; l步骤 先删除用户所拥有的对象 再删除用户 将参照该用户对象的其他数据库对象标志为INVALID 12.1.6查询用户信息 lALL_USERS:包含数据库所有用户的用户名、用户ID和 用户创建时间。 lDBA_USERS:包含数据库所有用户的详细信息。 lUSER_USERS:包含当前用户的详细信
10、息。 lDBA_TS_QUOTAS:包含所有用户的表空间配额信息。 lUSER_TS_QUOTAS:包含当前用户的表空间配额信息 。 lV$SESSION:包含用户会话信息。 lV$OPEN_CURSOR:包含用户执行的SQL语句信息。 l查看数据库所有用户名及其默认表空间。 SELECT SERNAME,DEFAULT_TABLESPACE FROM DBA_USERS; l查看数据库中各用户的登录时间、会话号。 SELECT SID,SERIAL#,LOGON_TIME,USERNAME FROM V$SESSION; 12.2 权限管理 l权限管理概述 l系统权限的授予与回收 l对象权限
11、的授予与回收 l查询权限信息 12.2.1权限管理概述 l概念 所谓权限就是执行特定类型SQL命令或访问其他用户的 对象的权利。用户在数据库中可以执行什么样的操作 ,以及可以对哪些对象进行操作,完全取决于该用户 所拥有的权限。 l分类 系统权限:系统权限是指在数据库级别执行某种操作 的权限,或针对某一类对象执行某种操作的权限。例 如,CREATE SESSION权限、CREATE ANY TABLE权限。 对象权限:对象权限是指对某个特定的数据库对象执 行某种操作的权限。例如,对特定表的插入、删除、 修改、查询的权限。 l授权方法 直接授权:利用GRANT命令直接为用户授权。 间接授权:先将权
12、限授予角色,然后再将角色授予用 户。 12.2.2系统权限的授予与回收 l系统权限分类 l系统权限的授权 l系统权限的回收 (1)系统权限分类 l一类是对数据库某一类对象的操作能力,通常带 有ANY关键字。例如,CREATE ANY INDEX, ALTER ANY INDEX,DROP ANY INDEX 。 l另一类系统权限是数据库级别的某种操作能力。 例如,CREATE SESSION。 (2)系统权限的授权 l语法为 GRANT sys_priv_list TO user_list|role_list|PUBLIC WITH ADMIN OPTION; l参数说明: sys_priv_
13、list:表示系统权限列表,以逗号分隔; user_list:表示用户列表,以逗号分隔; role_list:表示角色列表,以逗号分隔; PUBLIC:表示对系统中所有用户授权; WITH ADMIN OPTION:表示允许系统权限接收 者再把此权限授予其他用户。 l系统权限授予时需要注意的几点: 只有DBA才应当拥有ALTER DATABASE 系统权 限。 应用程序开发者一般需要拥有CREATE TABLE、 CREATE VIEW和CREATE INDEX等系统权限。 普通用户一般只具有CREATE SESSION系统权限 。 只有授权时带有WITH ADMIN OPTION子句时, 用
14、户才可以将获得的系统权限再授予其他用户,即系 统权限的传递性。 l为PUBLIC用户组授予CREATE SESSION系统权限。 GRANT CREATE SESSION TO PUBLIC; l为用户user1授予CREATE SESSION,CREATE TABLE,CREATE INDEX系统权限。 GRANT CREATE SESSION,CREATE TABLE,CREATE VIEW TO user1; l为用户user2授予CREATE SESSION,CREATE TABLE ,CREATE INDEX系统权限。user2获得权限后 ,为用户user3授予CREATE TABL
15、E权限。 GRANT CREATE SESSION,CREATE TABLE, CREATE VIEW TO user2 WITH ADMIN OPTION; CONNECT user2/user2 HUMAN_RESOURCE GRANT CREATE TABLE TO user3; l语法为 REVOKE sys_priv_list FROM user_list|role_list|PUBLIC; l注意事项 多个管理员授予用户同一个系统权限后,其中一个管理员 回收其授予该用户的系统权限时,该用户将不再拥有相应 的系统权限。 为了回收用户系统权限的传递性(授权时使用了WITH ADMIN
16、OPTION子句),必须先回收其系统权限,然 后再授予其相应的系统权限。 如果一个用户获得的系统权限具有传递性,并且给其他用 户授权,那么该用户系统权限被回收后,其他用户的系统 权限并不受影响。 (3)系统权限的回收 12.2.3 对象权限的授予与回收 l对象权限分类 l对象权限的授权 l对象权限的回收 (1)对象权限分类 p在Oracle数据库中共有9种类型的对象权限,不同类型 的模式对象有不同的对象权限,而有的对象并没有对象 权限,只能通过系统权限进行控制,如簇、索引、触发 器、数据库链接等。 对 象 权 限适 合 对 象对象权限功能说明 SELECT表、视图、序列查询数据操作 UPDATE表、视图更新数据操作 DELETE表、视图删除数据操作 INSERT表、视图插入数据操作 REFERENCES表在