一、实验内容
包括:用户管理,权限管理,角色管理,概要文件,数据库审计
二、实验目的
通过实验掌握Oracle安全管理方法,包括用户管理、角色管理和权限管理,以及数据库审计方法。
三、实验步骤
3.1 用户安全管理
用户是数据库最基本的对象之一。之前的实验我们都采用了超级管理员用户 system 登录,该用户拥有数据库大多数对象的操作权限。实际应用中,不是每个人都可以赋予该用户权限的,需要创建一些新的用户,并为之赋予适当的操作权限。
Oracle 中的用户可以分为两类:系统用户和普通用户。系统用户是数据库创建时由系统自动创建的用户,普通用户是由系统用户创建的用户。
3.1.1 新建用户
创建新用户需要用超级管理员或者其他拥有创建用户权限的用户登录系统,利用 SQL 语句创建用户,命令为 create user,其语法格式如下:
create user user_name identified by pass_word [or identified exeternally]
[or identified globally as ‘CN=user’]
[default tablespace tablespace_default]
[temporary tablespace tablespace_temp]
[quota [integer k[m]] [unlimited] ] on tablesapce_ specify1
[,quota [integer k[m]] [unlimited] ] on tablesapce_ specify2
[,…]…on tablespace_specifyn
[profiles profile_name]
[account lock or account unlock]
参数解释:
- user_name:用户名,一般为字母数字型和“#”及“_”符号。
- pass_word:用户口令,一般为字母数字型和“#”及“_”符号。
- identified exeternally:表示用户名在操作系统下验证,这种情况下要求该用户必须与操作系统中所定义的用户名相同。
- identified globally as ‘CN=user’:表示用户名由 Oracle安全域中心服务器验证,CN 名字表示用户的外部名。
- [default tablespace tablespace_default]:表示该用户在创建数据对象时使用的默认表空间。
- [temporary tablespace tablespace_temp]:表示该用户所使用的临时表空间。
- [quota [integer K[M]] [unlimited] on tablespace_specify1:表示该用户在指定表空间中允许占用的最大空间。
- [profiles profile_name]:资源文件的名称。
- [account lock or account unlock]:用户是否被加锁,默认情况下是不加锁的。
注意以下几点:
- 如果建立用户时不指定 DEFAULT TABLESPACE 子句,Oracle 会将SYSTEM 表空间作为用户默认表空间。
- 如果建立用户时不能指定TEMPORARY TABLESPACE子句,Oracle会将数据库默认临时表空间作为用户的临时表空间。
- 初始建立的用户没有任何权限,所以为了是用户可以连接到数据库,必须授权其 CREATE SESSION 权限。
- 如果建立用户时没有为表空间指定 QUOTA 子句,那么用户在特定表空间上的配额为 0,用户将不能在相应的表空间上建立数据对象。
- 初始建立的用户没有任何权限,不能执行任何数据库操作。
因为没有指定表空间,所以我先删除了用户,新建了用户并指定了表空间。
create user user_name identified by passwd default tablespace space_name;
3.1.2 更改用户口令
修改用户的命令为 alter user,同样需要用超级管理员或者其他拥有修改用户权限的用户登录系统,利用 SQL 语句修改用户,更改用户口令为111111。
alter user user_name indentified by 111111;
3.1.3 删除用户
删除用户的命令为 drop user,同样需要用超级管理员或者其他拥有删除用户权限的用户登录系统,利用 SQL 语句删除用户。
drop user user_name