10、用户与安全



一、用户与模式
    模式是用户所拥有的数据库对象的集合。这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:包含当前会话所包含的角色信息

猜你喜欢

转载自blog.csdn.net/bof_jangle/article/details/51220543