Oracle安全管理
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Page ▪ 12
7.2.4 删除用户
▪ 基本语法 –DROP USER user_name [ CASCADE ];
▪ 步骤 –先删除用户所拥有的对象 –再删除用户 –将参照该用户对象的其他数据库对象标志为INVALID
Page ▪ 13
7.2.5查询用户信息
▪ ALL_USERS:包含数据库所有用户的用户名、用户ID和用户创 建时间。
Page ▪ 8
7.2.2 创建用户
▪ 基本语法 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 profile_name] [PASSWORD EXPIRE] [ACCOUNT LOCK|UNLOCK]; 一般有DBA的权限才能使用。
Page ▪ 9
创建数据库用户示例
▪ 创建一个用户user3,口令为user3,默认表空间为USERS,在 该表空间的配额为10 MB,初始状态为锁定。 CREATE USER user3 IDENTIFIED BY user3 DEFAULT TABLESPACE USERS QUOTA 10M ON USERS ACCOUNT LOCK;
▪
grant create session to xiaoming;
▪
grant create table to xiaoming;
▪
grant unlimited tablespace to xiaoming;
▪
grant create session to public;
Page ▪ 21
7.3.3 对象权限分类
Page ▪ 10
7.2.3 修改用户
▪ 基本语法 ALTER 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 profile_name] [DEFAULT ROLE role_list|ALL [EXCEPT role_list] |NONE] [PASSWORD EXPIRE] [ACCOUNT LOCK|UNLOCK];
Page ▪ 23
▪ 将scott模式下的emp表的SELECT,UPDATE,INSERT权限授予 user1用户。 GRANT SELECT,INSERT,UPDATE ON scott.emp TO user1;
▪ 将scott模式下的emp表的SELECT,UPDATE,INSERT权限授予 user2用户。user2用户再将emp表的SELECT,UPDATE权限授予 user3用户。 GRANT SELECT,INSERT,UPDATE ON scott.emp TO user2 WITH GRANT OPTION; CONNECT user2/user2@ORCL GRANT SELECT,UPDATE ON scott.emp TO user3;
Page ▪ 6
数据库管理员(DBA)的职责
Page ▪ 7
评估数据库服务器的硬件设施 安装oracle软件 规划数据库 创建和打开数据库 备份数据库 注册系统用户 具体实施数据库的设计 备份具有完整功能的数据库 协调数据库的性能
数据库管理员的权限
数据库管理员需要管理权限才能执行基本的数据库操作, Oracle提供两种特殊的系统权限,即SYSDBA和SYSOPER。 DBA角色是由每个Oracle数据库自动创建的,包括大多数的数 据库系统权限;但不包括SYSDBA和SYSOPER系统权限。 当使用SYSDBA和SYSOPER权限连接到数据库时,用户会被连接 到一个默认的方案,而不是与用户名相关联的那个方案。 SYSDBA对应的方案是SYS,而SYSOPER对应的方案是PUBLIC。
Page ▪ 19
系统权限的回收
–回收xiaoming用户登录数据库的权限。 revoke create session from xiaoming;
–如果一个用户获得的系统权限具有传递性,并且 给其他用户授权,那么该用户系统权限被回收 后,其他用户的系统权限并不受影响。
Page ▪ 20
几个常用的系统权限的赋予语句:
Page ▪ 3
数据库安全性概述
▪ Oracle数据库的安全可以分为两类: –系统安全性 • 系统安全性是指在系统级控制数据库存取和使用的机制, 包括有效的用户名与口令的组合、用户是否被授权可连接 数据库、用户创建数据库对象时可以使用的磁盘空间大 小、用户的资源限制、是否启动了数据库审计功能,以及 用户可进行哪些系统操作等。 –数据安全性 • 数据安全性是指在对象级控制数据库的存取和使用机制, 包括用户可存取的模式对象和在该对象上允许进行的操作 等。
管理员; ▪ 数据库用户:通过应用程序与数据库打交道。
Page ▪ 5
数据库管理员(DBA) 网络管理员 应用程序开发人员 应用程序管理员 数据库用户
7.2.1 用户管理概述
▪ Oracle数据库初始用户 – SYS:是数据库中具有最高权限的数据库管理员,可以启 动、修改和关闭数据库,拥有数据字典; – SYSTEM:是一个辅助的数据库管理员,不能启动和关闭数 据库,但可以进行其他一些管理工作,如创建用户、删除用 户等。 –SCOTT:是一个用于测试网络连接的用户,其口令为TIGER。 –PUBLIC:实质上是一个用户组,数据库中任何一个用户都属 于该组成员。要为数据库中每个用户都授予某个权限,只需 把权限授予PUBLIC就可以了。
▪ DBA_USERS:包含数据库所有用户的详细信息。 ▪ USER_USERS:包含当前用户的详细信息。 ▪ DBA_TS_QUOTAS:包含所有用户的表空间配额信息。 ▪ USER_TS_QUOTAS:包含当前用户的表空间配额信息。 ▪ V$SESSION:包含用户会话信息。 ▪ V$OPEN_CURSOR:包含用户执行的SQL语句信息。
Page ▪ 11
修改数据库用户示例
–将用户user3的口令修改为newuser3,同时将该用户解锁。 ALTER USER user3 IDENTIFIED BY newuser3 ACCOUNT UNLOCK;
–修改用户user4的默认表空间为ORCLTBS1,在该表空间的配 额为20 MB,在USERS表空间的配额为10 MB。 ALTER USER user4 DEFAULT TABLESPACE ORCLTBS1 QUOTA 20M ON ORCLTBS1 QUOTA 10M ON USERS;
5.Oracle安全管理
内容安排
▪ 7.1 Oracle数据库安全性概述 ▪ 7.2 用户管理 ▪ 7.3 权限管理 ▪ 7.4 角色管理
Page ▪ 2
7.1 数据库安全性概述
▪ 数据库的安全性主要包括两个方面的含义: –一方面是防止非法用户对数据库的访问,未授权的用户不 能登录数据库; –另一方面是每个数据库用户都有不同的操作权限,只能进 行自己权限范围内的操作。
Page ▪ 17
系统权限授予时需要注意的几点:
–仅DBA才应拥有ALTER DATABASE 系统权限。 –应用程序开发者一般需要拥有CREATE TABLE、
CREATE VIEW和CREATE INDEX等系统权限。 –普通用户一般只具有CREATE SESSION系统权限。 –只有授权时带有WITH ADMIN OPTION子句时,用户
才可以将获得的系统权限再授予其他用户,即系统 权限的传递性。
Page ▪ 18
系统权限的回收
▪ 语法为 REVOKE sys_priv_list FROM user_list|role_list|PUBLIC;
▪ 注意事项 –多个管理员授予用户同一个系统权限后,其中一个管理员 回收其授予该用户的系统权限时,该用户将不再拥有相应 的系统权限。 –为了回收用户系统权限的传递性(授权时使用了WITH ADMIN OPTION子句),必须先回收其系统权限,然后再授 予其相应的系统权限。
Page ▪ 16
7.3.2 系统权限
▪ 语法为 GRANT sys_priv_list TO user_list|role_list|PUBLIC [WITH ADMIN OPTION];
▪ 参数说明: –sys_priv_list:表示系统权限列表,以逗号分隔; –user_list:表示用户列表,以逗号分隔; –role_list:表示角色列表,以逗号分隔; –PUBLIC:表示对系统中所有用户授权; –WITH ADMIN OPTION:表示允许系统权限接收者再把此权限 授予其他用户。
▪ 在Oracle数据库中共有9种类型的对象权限,不同类型的模式 对象有不同的对象权限。
对象权限 SELECT UPDATE DELETE INSERT REFERENCES EXECUTE READ ALTER INDEX
ALL
Page ▪ 22
适合对象 表、视图、序列 表、视图 表、视图 表、视图 表 存储过程、函数、包 目录 表、序列 表 具有对象权限的所有 模式对象
▪ 参数说明 –obj_priv_list:表示对象权限列表,以逗号分隔; –[schema.]object:表示指定的模式对象,默认为当前模式 中的对象; –user_list:表示用户列表,以逗号分隔; –role_list:表示角色列表,以逗号分隔; –WITH GRANT OPTION:表示允许对象权限接收者把此对象权 限授予其他用户。
Page ▪ 4
7.2 用户管理——用户类型
▪ Oracle提供了多种用户类型,用于实现不同的管理职责。 ▪ 数据库管理员:通常情况需要一组数据库管理员,甚至兼职安全官员; ▪ 网络管理员:可以管理Oracle的网络产品,例如Oracle Net Services等; ▪ 应用程序开发员:负责设计和实现数据库应用程序; ▪ 应用程序管理员:对指定的应用程序进行管理,每个应用程序都有各自的
Page ▪ 14
7.3 权限管理
用户管理的综合案例 创建的新用户是没有任何权限的,甚至连登录数据库的权限都没 有,需要为其指定相应的权限。 举例a. 创建用户xiaoming,并使之登陆数据库
b.使xiaoming用户查询scott用户的emp表
新用户
Page ▪ 15
授权
数据库
7.3.1权限管理
▪ 概念 –所谓权限就是执行特定类型SQL命令或访问其他用户的对 象的权利。用户在数据库中可以执行什么样的操作,以及 可以对哪些对象进行操作,完全取决于该用户所拥有的权 限。
▪ 分类 –系统权限:系统权限是指在数据库级别执行某种操作的权 限,或针对某一类对象执行某种操作的权限。例如, CREATE SESSION权限、CREATE ANY TABLE权限。 –对象权限:对象权限是指对某个特定的数据库对象执行某 种操作的权限。例如,对特定表的插入、删除、修改、查 询的权限。
对象权限功能说明 查询数据操作 更新数据操作 删除数据操作 插入数据操作 在其他表中创建外键时可以引用该表 执行PL/SQLeabharlann Baidu存储过程、函数和包 读取目录 修改表或序列结构 为表创建索引
某个对象所有对象权限操作集合
22
对象权限的授权
▪ 语法 GRANT obj_priv_list|ALL ON [schema.]object TO user_list|role_list [WITH GRANT OPTION];
7.2.4 删除用户
▪ 基本语法 –DROP USER user_name [ CASCADE ];
▪ 步骤 –先删除用户所拥有的对象 –再删除用户 –将参照该用户对象的其他数据库对象标志为INVALID
Page ▪ 13
7.2.5查询用户信息
▪ ALL_USERS:包含数据库所有用户的用户名、用户ID和用户创 建时间。
Page ▪ 8
7.2.2 创建用户
▪ 基本语法 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 profile_name] [PASSWORD EXPIRE] [ACCOUNT LOCK|UNLOCK]; 一般有DBA的权限才能使用。
Page ▪ 9
创建数据库用户示例
▪ 创建一个用户user3,口令为user3,默认表空间为USERS,在 该表空间的配额为10 MB,初始状态为锁定。 CREATE USER user3 IDENTIFIED BY user3 DEFAULT TABLESPACE USERS QUOTA 10M ON USERS ACCOUNT LOCK;
▪
grant create session to xiaoming;
▪
grant create table to xiaoming;
▪
grant unlimited tablespace to xiaoming;
▪
grant create session to public;
Page ▪ 21
7.3.3 对象权限分类
Page ▪ 10
7.2.3 修改用户
▪ 基本语法 ALTER 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 profile_name] [DEFAULT ROLE role_list|ALL [EXCEPT role_list] |NONE] [PASSWORD EXPIRE] [ACCOUNT LOCK|UNLOCK];
Page ▪ 23
▪ 将scott模式下的emp表的SELECT,UPDATE,INSERT权限授予 user1用户。 GRANT SELECT,INSERT,UPDATE ON scott.emp TO user1;
▪ 将scott模式下的emp表的SELECT,UPDATE,INSERT权限授予 user2用户。user2用户再将emp表的SELECT,UPDATE权限授予 user3用户。 GRANT SELECT,INSERT,UPDATE ON scott.emp TO user2 WITH GRANT OPTION; CONNECT user2/user2@ORCL GRANT SELECT,UPDATE ON scott.emp TO user3;
Page ▪ 6
数据库管理员(DBA)的职责
Page ▪ 7
评估数据库服务器的硬件设施 安装oracle软件 规划数据库 创建和打开数据库 备份数据库 注册系统用户 具体实施数据库的设计 备份具有完整功能的数据库 协调数据库的性能
数据库管理员的权限
数据库管理员需要管理权限才能执行基本的数据库操作, Oracle提供两种特殊的系统权限,即SYSDBA和SYSOPER。 DBA角色是由每个Oracle数据库自动创建的,包括大多数的数 据库系统权限;但不包括SYSDBA和SYSOPER系统权限。 当使用SYSDBA和SYSOPER权限连接到数据库时,用户会被连接 到一个默认的方案,而不是与用户名相关联的那个方案。 SYSDBA对应的方案是SYS,而SYSOPER对应的方案是PUBLIC。
Page ▪ 19
系统权限的回收
–回收xiaoming用户登录数据库的权限。 revoke create session from xiaoming;
–如果一个用户获得的系统权限具有传递性,并且 给其他用户授权,那么该用户系统权限被回收 后,其他用户的系统权限并不受影响。
Page ▪ 20
几个常用的系统权限的赋予语句:
Page ▪ 3
数据库安全性概述
▪ Oracle数据库的安全可以分为两类: –系统安全性 • 系统安全性是指在系统级控制数据库存取和使用的机制, 包括有效的用户名与口令的组合、用户是否被授权可连接 数据库、用户创建数据库对象时可以使用的磁盘空间大 小、用户的资源限制、是否启动了数据库审计功能,以及 用户可进行哪些系统操作等。 –数据安全性 • 数据安全性是指在对象级控制数据库的存取和使用机制, 包括用户可存取的模式对象和在该对象上允许进行的操作 等。
管理员; ▪ 数据库用户:通过应用程序与数据库打交道。
Page ▪ 5
数据库管理员(DBA) 网络管理员 应用程序开发人员 应用程序管理员 数据库用户
7.2.1 用户管理概述
▪ Oracle数据库初始用户 – SYS:是数据库中具有最高权限的数据库管理员,可以启 动、修改和关闭数据库,拥有数据字典; – SYSTEM:是一个辅助的数据库管理员,不能启动和关闭数 据库,但可以进行其他一些管理工作,如创建用户、删除用 户等。 –SCOTT:是一个用于测试网络连接的用户,其口令为TIGER。 –PUBLIC:实质上是一个用户组,数据库中任何一个用户都属 于该组成员。要为数据库中每个用户都授予某个权限,只需 把权限授予PUBLIC就可以了。
▪ DBA_USERS:包含数据库所有用户的详细信息。 ▪ USER_USERS:包含当前用户的详细信息。 ▪ DBA_TS_QUOTAS:包含所有用户的表空间配额信息。 ▪ USER_TS_QUOTAS:包含当前用户的表空间配额信息。 ▪ V$SESSION:包含用户会话信息。 ▪ V$OPEN_CURSOR:包含用户执行的SQL语句信息。
Page ▪ 11
修改数据库用户示例
–将用户user3的口令修改为newuser3,同时将该用户解锁。 ALTER USER user3 IDENTIFIED BY newuser3 ACCOUNT UNLOCK;
–修改用户user4的默认表空间为ORCLTBS1,在该表空间的配 额为20 MB,在USERS表空间的配额为10 MB。 ALTER USER user4 DEFAULT TABLESPACE ORCLTBS1 QUOTA 20M ON ORCLTBS1 QUOTA 10M ON USERS;
5.Oracle安全管理
内容安排
▪ 7.1 Oracle数据库安全性概述 ▪ 7.2 用户管理 ▪ 7.3 权限管理 ▪ 7.4 角色管理
Page ▪ 2
7.1 数据库安全性概述
▪ 数据库的安全性主要包括两个方面的含义: –一方面是防止非法用户对数据库的访问,未授权的用户不 能登录数据库; –另一方面是每个数据库用户都有不同的操作权限,只能进 行自己权限范围内的操作。
Page ▪ 17
系统权限授予时需要注意的几点:
–仅DBA才应拥有ALTER DATABASE 系统权限。 –应用程序开发者一般需要拥有CREATE TABLE、
CREATE VIEW和CREATE INDEX等系统权限。 –普通用户一般只具有CREATE SESSION系统权限。 –只有授权时带有WITH ADMIN OPTION子句时,用户
才可以将获得的系统权限再授予其他用户,即系统 权限的传递性。
Page ▪ 18
系统权限的回收
▪ 语法为 REVOKE sys_priv_list FROM user_list|role_list|PUBLIC;
▪ 注意事项 –多个管理员授予用户同一个系统权限后,其中一个管理员 回收其授予该用户的系统权限时,该用户将不再拥有相应 的系统权限。 –为了回收用户系统权限的传递性(授权时使用了WITH ADMIN OPTION子句),必须先回收其系统权限,然后再授 予其相应的系统权限。
Page ▪ 16
7.3.2 系统权限
▪ 语法为 GRANT sys_priv_list TO user_list|role_list|PUBLIC [WITH ADMIN OPTION];
▪ 参数说明: –sys_priv_list:表示系统权限列表,以逗号分隔; –user_list:表示用户列表,以逗号分隔; –role_list:表示角色列表,以逗号分隔; –PUBLIC:表示对系统中所有用户授权; –WITH ADMIN OPTION:表示允许系统权限接收者再把此权限 授予其他用户。
▪ 在Oracle数据库中共有9种类型的对象权限,不同类型的模式 对象有不同的对象权限。
对象权限 SELECT UPDATE DELETE INSERT REFERENCES EXECUTE READ ALTER INDEX
ALL
Page ▪ 22
适合对象 表、视图、序列 表、视图 表、视图 表、视图 表 存储过程、函数、包 目录 表、序列 表 具有对象权限的所有 模式对象
▪ 参数说明 –obj_priv_list:表示对象权限列表,以逗号分隔; –[schema.]object:表示指定的模式对象,默认为当前模式 中的对象; –user_list:表示用户列表,以逗号分隔; –role_list:表示角色列表,以逗号分隔; –WITH GRANT OPTION:表示允许对象权限接收者把此对象权 限授予其他用户。
Page ▪ 4
7.2 用户管理——用户类型
▪ Oracle提供了多种用户类型,用于实现不同的管理职责。 ▪ 数据库管理员:通常情况需要一组数据库管理员,甚至兼职安全官员; ▪ 网络管理员:可以管理Oracle的网络产品,例如Oracle Net Services等; ▪ 应用程序开发员:负责设计和实现数据库应用程序; ▪ 应用程序管理员:对指定的应用程序进行管理,每个应用程序都有各自的
Page ▪ 14
7.3 权限管理
用户管理的综合案例 创建的新用户是没有任何权限的,甚至连登录数据库的权限都没 有,需要为其指定相应的权限。 举例a. 创建用户xiaoming,并使之登陆数据库
b.使xiaoming用户查询scott用户的emp表
新用户
Page ▪ 15
授权
数据库
7.3.1权限管理
▪ 概念 –所谓权限就是执行特定类型SQL命令或访问其他用户的对 象的权利。用户在数据库中可以执行什么样的操作,以及 可以对哪些对象进行操作,完全取决于该用户所拥有的权 限。
▪ 分类 –系统权限:系统权限是指在数据库级别执行某种操作的权 限,或针对某一类对象执行某种操作的权限。例如, CREATE SESSION权限、CREATE ANY TABLE权限。 –对象权限:对象权限是指对某个特定的数据库对象执行某 种操作的权限。例如,对特定表的插入、删除、修改、查 询的权限。
对象权限功能说明 查询数据操作 更新数据操作 删除数据操作 插入数据操作 在其他表中创建外键时可以引用该表 执行PL/SQLeabharlann Baidu存储过程、函数和包 读取目录 修改表或序列结构 为表创建索引
某个对象所有对象权限操作集合
22
对象权限的授权
▪ 语法 GRANT obj_priv_list|ALL ON [schema.]object TO user_list|role_list [WITH GRANT OPTION];