oracle安全管理

oracle安全管理

实验目的

掌握Oracle的安全管理方法。

实验内容

(1) 概要文件的建立、修改、查看、删除操作。

(2) 用户的建立、修改、查看、删除操作。

(3) 权限的建立、修改、查看、删除操作。

(4) 角色的建立、修改、查看、删除操作。

 

实验步骤

1、安全管理

 (1) 创建概要文件。

① 利用企业管理器创建概要文件“ygbx+学号_pro”,要求在此概要文件中CPU/会话为1000,读取数/会话为2000,登录失败次数为3,锁定天数为10。

SQL> create profile "ygbx+1215115130_pro" limit

  2  cpu_per_session 1000

  3  logical_reads_per_call 2000

  4  failed_login_attempts 3

  5  password_lock_time 10

  6  ;

配置文件已创建

 

 

 

② 利用SQL*Plus或iSQL*Plus,创建概要文件“ygbx+学号_pro_sql”,其结构与“ygbx+学号_pro”一致。

SQL> create profile "ygbx+1215115130_pro_sql" limit

  2  cpu_per_session 1000

  3  logical_reads_per_call 2000

  4  failed_login_attempts 3

  5  password_lock_time 10

  6  ;

 

配置文件已创建

 

2) 查看概要文件。

① 利用企业管理器查看概要文件“ygbx+学号_pro”的信息。

SQL> desc dba_profiles;

 名称                                      是否为空类型

 ----------------------------------------- -------- -----------------

 PROFILE                                   NOT NULL VARCHAR2(30)

 RESOURCE_NAME                             NOT NULL VARCHAR2(32)

 RESOURCE_TYPE                                      VARCHAR2(8)

 LIMIT                                              VARCHAR2(40)

 

 

② 利用SQL*Plus或iSQL*Plus,从DBA_PROFILES数据字典中查看“ygbx+学号_pro_sql”概要文件的资源名称和资源值等信息。

 

SQL> set linesize 500

SQL> select * from dba_profiles

  2  where profile=‘ygbx+1215115130_pro_sql‘;

 

PROFILE                        RESOURCE_NAME                    RESOURCE LIMIT

------------------------------ -------------------------------- -------- ---------------

ygbx+1215115130_pro_sql        COMPOSITE_LIMIT                  KERNEL   DEFAULT

ygbx+1215115130_pro_sql        SESSIONS_PER_USER                KERNEL   DEFAULT

ygbx+1215115130_pro_sql        CPU_PER_SESSION                  KERNEL   1000

ygbx+1215115130_pro_sql        CPU_PER_CALL                     KERNEL   DEFAULT

ygbx+1215115130_pro_sql        LOGICAL_READS_PER_SESSION        KERNEL   DEFAULT

ygbx+1215115130_pro_sql        LOGICAL_READS_PER_CALL           KERNEL   2000

ygbx+1215115130_pro_sql        IDLE_TIME                        KERNEL   DEFAULT

ygbx+1215115130_pro_sql        CONNECT_TIME                     KERNEL   DEFAULT

ygbx+1215115130_pro_sql        PRIVATE_SGA                      KERNEL   DEFAULT

ygbx+1215115130_pro_sql        FAILED_LOGIN_ATTEMPTS            PASSWORD 3

ygbx+1215115130_pro_sql        PASSWORD_LIFE_TIME               PASSWORD DEFAULT

 

PROFILE                        RESOURCE_NAME                    RESOURCE LIMIT

------------------------------ -------------------------------- -------- ---------------

ygbx+1215115130_pro_sql        PASSWORD_REUSE_TIME              PASSWORD DEFAULT

ygbx+1215115130_pro_sql        PASSWORD_REUSE_MAX               PASSWORD DEFAULT

ygbx+1215115130_pro_sql        PASSWORD_VERIFY_FUNCTION         PASSWORD DEFAULT

ygbx+1215115130_pro_sql        PASSWORD_LOCK_TIME               PASSWORD 10

ygbx+1215115130_pro_sql        PASSWORD_GRACE_TIME              PASSWORD DEFAULT

 

已选择16行。

 

 

③ 利用SQL*Plus或iSQL*Plus,从查看“ygbx+学号_pro_sql”概要文件中锁定天数的值。

 

SQL> set linesize 500

SQL> select * from dba_profiles

  2  where profile=‘ygbx+1215115130_pro_sql‘;

 

PROFILE                        RESOURCE_NAME                    RESOURCE LIMIT

------------------------------ -------------------------------- -------- ---------------

ygbx+1215115130_pro_sql        COMPOSITE_LIMIT                  KERNEL   DEFAULT

ygbx+1215115130_pro_sql        SESSIONS_PER_USER                KERNEL   DEFAULT

ygbx+1215115130_pro_sql        CPU_PER_SESSION                  KERNEL   1000

ygbx+1215115130_pro_sql        CPU_PER_CALL                     KERNEL   DEFAULT

ygbx+1215115130_pro_sql        LOGICAL_READS_PER_SESSION        KERNEL   DEFAULT

ygbx+1215115130_pro_sql        LOGICAL_READS_PER_CALL           KERNEL   2000

ygbx+1215115130_pro_sql        IDLE_TIME                        KERNEL   DEFAULT

ygbx+1215115130_pro_sql        CONNECT_TIME                     KERNEL   DEFAULT

ygbx+1215115130_pro_sql        PRIVATE_SGA                      KERNEL   DEFAULT

ygbx+1215115130_pro_sql        FAILED_LOGIN_ATTEMPTS            PASSWORD 3

ygbx+1215115130_pro_sql        PASSWORD_LIFE_TIME               PASSWORD DEFAULT

 

PROFILE                        RESOURCE_NAME                    RESOURCE LIMIT

------------------------------ -------------------------------- -------- ---------------

ygbx+1215115130_pro_sql        PASSWORD_REUSE_TIME              PASSWORD DEFAULT

ygbx+1215115130_pro_sql        PASSWORD_REUSE_MAX               PASSWORD DEFAULT

ygbx+1215115130_pro_sql        PASSWORD_VERIFY_FUNCTION         PASSWORD DEFAULT

ygbx+1215115130_pro_sql        PASSWORD_LOCK_TIME               PASSWORD 10

ygbx+1215115130_pro_sql        PASSWORD_GRACE_TIME              PASSWORD DEFAULT

 

已选择16行。

 

(3) 修改概要文件。

① 利用企业管理器,修改“ygbx+学号_pro”概要文件,将CPU/会话改为4000,连接时间为60。

SQL> alter profile"ygbx+1215115130_pro" limit

  2  cpu_per_session 4000

  3  connect_time 60;

 

配置文件已更改

 

 

② 利用SQL*Plus或iSQL*Plus,修改“ygbx+学号_pro_sql”概要文件,将并行会话设为20,读取数/会话设为DEFAULT。

SQL> alter profile"ygbx+1215115130_pro_sql" limit

  2  sessions_per_user 20

  3   logical_reads_per_seesion default;

   (4) 创建用户。

① 利用企业管理器,创建“ygbxuser+学号”用户,密码为“user+学号”,默认表空间为“ygbx_tbs”。 

SQL> create user "ygbxuser_1215115130" identified by "user+1215115130";

 

用户已创建。

 

 

② 利用SQL*Plus或iSQL*Plus,创建“ygbxuser+学号_sql”用户,密码为“user+学号+sql”,该用户处于锁状态。

SQL>  create user "ygbxuser_1215115130_sql" identified by "user+1215115130+sql";

 

用户已创建。

 

③ 利用SQL*Plus或iSQL*Plus,将“ygbx+学号_pro”概要文件赋予 “ygbxuser+学号”用户。

SQL> alter user "ygbxuser_1215115130" profile "ygbx+1215115130_pro"

  2  ;

 

用户已更改。

 

④ 利用SQL*PlusiSQL*Plus,将“ygbx+学号_pro_sql”概要文件赋予 “ygbxuser+学号_sql”用户。SQL> alter user "ygbxuser_1215115130_sql" profile "ygbx+1215115130_pro_sql"

  2  ;

 

用户已更改。

 

(5) 查看用户。

① 利用企业管理器,查看“ygbxuser+学号”用户的信息。

 

② 利用SQL*Plus或iSQL*Plus,查看“ygbxuser+学号_sql”用户的信息,并查看该用户验证的方式。

 

③ 利用SQL*Plus或iSQL*Plus,从DBA_USERS数据字典中查看“ygbxuser+学号_sql”用户的默认表空间和临时表空间的信息。

SQL> select temporary_tablespace,default_tablespace from dba_users

  2  where username=‘ygbxuser_1215115130_sql‘;

 

TEMPORARY_TABLESPACE           DEFAULT_TABLESPACE

------------------------------ ------------------------------

TEMP                           USERS

 

(6) 修改用户。

① 利用企业管理器,修改“ygbxuser+学号”用户,验证方式为外部.

SQL> alter user "ygbxuser_1215115130" identified externally;

 

用户已更改。

 

 

② 利用SQL*Plus或iSQL*Plus,修改“ygbxuser+学号_sql”用户,将该用户解锁,并将密码改为“sql+学号+user”。

SQL> alter user "ygbxuser_1215115130_sql" account unlock;

 

用户已更改。

 

SQL>  alter user "ygbxuser_1215115214_sql" identified by "sql+1215115130_user";

 

用户已更改。

 

(7) 权限管理。

① 利用企业管理器,授予“ygbxuser+学号”用户“CREATE ANY TABLE”、“CREATE ANY INDEX”、“ALTER ANY TABLE”、“ALTER ANY INDEX”、“DROP ANY TABLE”和“DROP ANY INDEX”系统权限。

SQL>  grant create any table,create any index,alter any table,alter any index,

  2   drop any table,drop any index to "ygbxuser_1215115130"

  3  ;

 

授权成功。

 

 

② 利用SQL*Plus或iSQL*Plus,授予“ygbxuser+学号_sql”用户“SYSOPER”系统权限。

SQL> grant sysoper to "ygbxuser_1215115130_sql";

 

授权成功。

 

③ 利用企业管理器,将“ygbxuser+学号”用户增加到“SYSTEM”方案中对“help”表的查看、修改、删除等对象权限。

SQL> grant select,update,delete on system.help to "ygbxuser_1215115130";

 

授权成功。

 

④ 利用SQL*PlusiSQL*Plus,收回“ygbxuser+学号_sql”用户在“SYSTEM”方案中对“help”表的查看、修改、删除等对象权限。

SQL>  revoke select,update,delete on system.help from "ygbxuser_1215115130";

撤销成功。

 

⑤ 利用SQL*Plus或iSQL*Plus,收回“ygbxuser+学号_sql”用户的“SYSOPER”系统权限。

SQL> revoke sysoper from "ygbxuser_1215115130_sql"

  2  ;

撤销成功。

 

(8) 创建角色。

① 利用企业管理器,创建“ygbxrole+学号”角色,赋予该角色能对表、索引、存储过程、序列、同义词进行基本操作的权限。

 

② 利用SQL*Plus或iSQL*Plus,创建“ygbxrole+学号_sql”角色,该角色具有 “SYSDBA”系统权限,并将该角色赋予“ygbxuser+学号_sql”用户。

SQL> create role "ygbxrole+1215115130_sql";

 

角色已创建。

 

SQL> grant dba to "ygbxrole+1215115130_sql";

 

授权成功。

SQL> grant "ygbxrole+1215115130_sql" to "ygbxuser_1215115130_sql";

 

授权成功。

 

(9) 查看角色。

① 利用企业管理器,查看“ygbxrole+学号”角色所具有的所有权限。

 

② 利用SQL*Plus或iSQL*Plus,查看“ygbxrole+学号_sql”角色所具有的所有权限。

 

(10) 修改角色。

① 利用企业管理器,修改“ygbxrole+学号”角色,增加对角色的基本操作,并收回存储过程和序列的操作权限。

 

 

② 利用SQL*Plus或iSQL*Plus,修改“ygbxrole+学号_sql”角色,收回“SYSDBA”系统,而授予“SELECT ANY TABLE”系统权限。

SQL> revoke dba from "ygbxrole+1215115130_sql";

 

撤销成功。

 

SQL> grant select any table to "ygbxuser_1215115130_sql"

  2  ;

 

授权成功。

 

(11) 删除角色。 

① 利用企业管理器,删除“ygbxrole+学号”角色。

 

 

② 利用SQL*Plus或iSQL*Plus,删除“ygbxrole+学号_sql”角色。

SQL> drop role "ygbxrole+1215115130_sql";

 

角色已删除。

 

(12) 删除概要文件。

① 利用企业管理器,删除“ygbx+学号_pro”概要文件,查看“ygbxuser+学号”用户的概要文件。

 

 

删除用户后

 

② 利用SQL*Plus或iSQL*Plus,删除“ygbx+学号_pro_sql”概要文件,查看“ygbxuser+学号_sql”用户的概要文件。

 

 

删除用户后

 

(13) 删除用户。

① 利用企业管理器,删除“ygbxuser+学号”用户。

 

② 利用SQL*Plus或iSQL*Plus,删除“ygbxuser+学号_sql”用户。

SQL> drop user "ygbxuser_1215115130_sql";

 

用户已删除。

 

总结:

1.只有DBA才应当拥有ALTER DATABASE 系统权限。应用程序开发者一般需要拥有CREATE TABLECREATE VIEWCREATE INDEX等系统权限。普通用户一般只具有CREATE SESSION系统权限。只有授权时带有WITH ADMIN OPTION子句时,用户才可以将获得的系统权限再授予其他用户,即系统权限的传递性。

2.用户是DB的使用者和管理者,用户管理是Oracle DB安全管理的核心和基础。

3.表空间配额限制用户在永久表空间中可以使用的存储空间的大小,默认情况下,新建用户在任何表空间中都没有任何配额。

4.SYS:是数据库中具有最高权限的数据库管理员,可以启动、修改和关闭数据库,拥有数据字典;SYSTEM:是一个辅助的数据库管理员,不能启动和关闭数据库,但可以进行其他一些管理工作,如创建用户、删除用户等。SCOTT:是一个用于测试网络连接的用户,其口令为TIGERPUBLIC:实质上是一个用户组,数据库中任何一个用户都属于该组成员。要为数据库中每个用户都授予某个权限,只需把权限授予PUBLIC就可以了。

5.如果没有显式地指明该对象在哪个表空间中存储,系统会自动将该数据库对象存储在当前用户的默认表空间中。如果没有为用户指定默认表空间,则系统将数据库的默认表空间作为用户的默认表空间。

6.当用户进行排序、汇总和执行连接、分组等操作时,系统首先使用内存中的排序区SORT_AREA_SIZE,如果该区域内存不够,则自动使用用户的临时表空间。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。