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

10、用户与安全

2016-04-22 15:23 351 查看
一、用户与模式

    模式是用户所拥有的数据库对象的集合。这oracle中,对象是以用户来组织的,用户与模式是一一对应的关系i,并且两者名称相同(当用户访问其他模式对象时,需要附加模式名作为前缀。)

1.1创建用户

create user user_name

identified by password

default tablespace tablespace_name

[quota unlimited on users]

temporary tablespace temp_tablespace

[password expiire];    --强制用户每登录一次就需要修改密码。

1.2修改用户

alter user user_name identified by password_name; --修改密码

alter user user_name quota 10 on user_tablespace; --修改表空间配额

alter user user_name account lock;        --锁定用户

alter user user_name account unlock;        --解锁用户

alter user user_name default tablespace tablespace_name;--修改默认表空间

alter user user_name temporary tablespace temp_tablespace_name; --修改临时表空间

drop user user_name  cascade;    --删除用户

drop user user_name including contents and datafiles cascade constraints; --删除用户2

二、资源配置profile

    profile为用户配置文件,它是密码限制、资源限制的命名集合。

create profile profile_name limit

failed_login_attempts 3            --允许的错误次数

password_lock_time 10            --到达错误次数后,锁定的天数。

password_file_time 10            --密码的有效时间

password_grace_time 2;            --密码到期后的可用时间,2天后会被强制修改密码

P320,关于管理资源的一些参数(CPU时间,会话时间等)

alter user user_name profile profile_name;    --为用户指定profile文件。

alter profile profile_name limit

xxx 1

xxx 2

xxx 3;                --修改profile

drop profile profile_name;    --删除profile

select profile from dba_users where username = 'username'; --查询某用户所拥有的资源文件。

select resource_name,resource_type,limit from dba_profiles where profile='profile_name';--查询资源文件的详细信息。

三、权限的授予

3.1系统权限

grant system_priv[,system_priv,...]

to {PUBLIC | role |user }[,{PUBLIC| role | user}]...

[with admin option];        --授予系统权限

with admin option:被授予的用户、角色可以将相应的权限授权给其他用户或角色。

revoke system_priv[,system_priv] ...

from { PUBLIC | role |user }[,{user | PUBLIC | role}]...   --回收系统权限

系统权限信息视图:

dba_sys_privs:管理员拥有的所有系统权限信息

session_privs:当前数据库用户可以使用的权限信息

system_privilege_map:系统中所有的系统权限信息

系统权限收回,经过传递获得权限的用户不受影响。

3.2对象权限

grant {object_priv [(column_list)]} [,object_priv[(column_list)]]...

| all [priviileges] on [schema.]object

to { user | role | PUBLIC}[,{user | role | public }]...

[with grant option];

with grant option:被授予的用户可以将相应的权限授予给其他用户、角色(但该选项不能修饰角色。)

object_priv:对象权限

column_list:指定相应的列,则该权限仅对此列有效。

revoke { object_priv [,object_priv]...| all [privileges]}

on [schema.]object

from { user | role | PUBLIC};

[cascade constraints];

对象权限信息视图:

dba_tab_privs:所有用户或角色的对象权限信息

dba_col_privs:所有用户或角色的列权限信息

all_tab_privs_made:对象所有者或授权用户所授出的所有对象权限

all_tab_privs_recd:用户所具有的对象权限

all_col_privs_made:对象所有者或授权用户所授出的所有列权限

all_col_privs_recd:用户所具有的列权限

四、管理角色

    角色是具有名称的一组相关权限的组合。我们可以把权限授予角色,然后把角色授予用户。从而在角色层面来控制用户的权限。

预定义角色:

1、connect角色:连接、会话、簇、序列、同义词、视图、表。

2、resource角色:簇、序列、类型、表、过程、触发器。

3、dba角色:包含with admin option选项,默认dba用户为system。dba角色不具备sysdba特权,sysdba特权自动拥有dba角色的所有权限。

4、exp_full_database:用于执行数据导出操作的角色。

5、imp_full_database:用于执行数据导入操作的角色。

6、execute_catalog_role:对所有系统PL/SQL包的execute对象权限

7、delete_catalog_role:

8、select_catalog_role

9、recovery_catalog_owner

create role role_name {not identified | identified by password_name};    --创建角色。

grant system_priv to role_name;            --给角色授权,此处可参考用户授权篇。

alter user user_name default role role_name;    --为用户设置默认角色(一个用户可拥有多个角色)

alter role role_name not identified;        --修改角色为非验证方式

alter role role_name identified by password_name;--修改角色为验证方式

drop role role_name;                --删除用户

角色信息视图:

dba_roles:记录数据库中所有的角色

dba_role_privs:记录所有已经被授予用户和角色的角色

user_roles:包含已经授予当前用户的角色信息

role_role_privs:包含角色授予的角色信息

role_sys_privs:包含为角色授予的系统权限信息

role_tab_privs:包含为角色授予的对象权限信息

session_roles:包含当前会话所包含的角色信息
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息