您的位置:首页 > 数据库 > Oracle

oracle安全管理

2015-06-07 23:41 543 查看

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*Plus或iSQL*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*Plus或iSQL*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 TABLE、CREATE VIEW和CREATE INDEX等系统权限。普通用户一般只具有CREATE SESSION系统权限。只有授权时带有WITH ADMIN OPTION子句时,用户才可以将获得的系统权限再授予其他用户,即系统权限的传递性。

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

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

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

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

6.当用户进行排序、汇总和执行连接、分组等操作时,系统首先使用内存中的排序区SORT_AREA_SIZE,如果该区域内存不够,则自动使用用户的临时表空间。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: