oracle知识梳理之-用户

1。具有创建对象权限并且创建了对象的用户称为拥有某个模式。模式是某个用户拥有的所有对象的集合。
2。模式用户与非模式用户有很大区别。

sys用户是所有资源的拥有者,他授权system用户了自己几乎所有的权限
sys用户的默认密码为change_on_install。对于system用户,如果使用了create database创建用户,他的默认密码为manager

创建用户命令

CREATE USER username
IDENTIFIED BY password | EXTERNALLY | GLOBALLY AS  extname
DEFAULT TABLESPACE tablespacename
TEMPORARY TABLESPACE tablespacename
ACCOUNT LOCK|UNLOCK
PROFILE profilename |DEFAULT
PASSWORD EXPIRE
QUOTA num[K|M] UNLIMITED ON tablespace

修改用户
ALTER USER username
IDENTIFIED BY password | EXTERNALLY | GLOBALLY AS  extname
DEFAULT TABLESPACE tablespacename
TEMPORARY TABLESPACE tablespacename
ACCOUNT LOCK|UNLOCK
PROFILE profilename |DEFAULT
PASSWORD EXPIRE
QUOTA num[K|M] UNLIMITED ON tablespace

删除用户:
DROP USER username [CASCADE] 
删除模式用户的时候必须使用 CASCADE,使用CASCADE会删除所有对象以及用户拥有的表中所含的所有数据。

查找用户拥有的对象可以使用DBA_OBJECTS视图
SELECT OBJECT_NAME,OBJECT_TYPE FROM dba_OBJECTS WHERE OWNER='username'

授权:
oracle 拥有100多种系统权限 授权格式为
GRANT privilege[, privilege,...]
TO username[,username,...]
[WITH ADMIN OPTION];   

使用with admin options可以让被授权人传递权限。也就是被授权人可以将自己得到的权限再次授权给别人。

取消权限:
REVOLK privilige FROM user

查询权限  DBA_SYS_PRIVS 所有用户被授予的系统权限
         USER_SYS_PRIVS 当前用户被授予的系统权限

对象权限:在ORACLE中,用户也可以被授予对象权限。对象权限允许用户操作数据库中的数据或者在对象上执行某个动作。与DBA授予系统权限不同的是,对象权限需要由对象的拥有者授予。

语法:
GRANT privilege[,privilege,] |ALL[(,column,]
ON objectname
TO user|role|PUBLIC
[WITH GRANT OPTION];   可再次授权
具体的对象权限有 select,insert,update,delete,alter,index,references,execute;

撤销权限: 
REVOKE privilege
ON objectname
FROM user | role | PUBLIC
[CASCADE CONSTRAINTS]   如果使用了这个命令则取消授权是级联的:)

创建与管理角色:
在大型应用中,Oracle提供了先将权限集合在一起然后为用户指派整个权限组的角色机制。
角色可以看做是保存权限的容器,他的主要有点是简化了为用户授予权限的过程,DBA可以先创建一个角色,然后为该角色授予用户执行某个任务所需的所有权限。

使用角色比使用权限能够提供更好的性能。角色的权限会在首次使用时被存入数据字典缓存。而直接使用权限的话,只有在频繁使用的情况下它才会被添加到数据字典缓存。

常用的预定义角色 DBA,SELECT_CATALOG_ROLE,EXECUTE_CATALOG_ROLE, CONNECT, RESOURCE,PUBLIC

例如CONNECT角色拥有 ALTER SESSION,CREATE CLUSTER,CREATE SEQUENCE, CREATE SESSION, CREATE SYNONYM, CREATE TABLE,CREATE VIEW 权限。

在使用enterprise manager创建某个用户时,该用户会被自动授予CONNECT角色。

创建角色的命令:
CREATE ROLE rolename
[NOT IDENTIFIED| IDENTIFIED BY  password | EXTERNALLY | GLOBALLY];

修改角色:
ALTER ROLE rolename
[NOT IDENTIFIED| IDENTIFIED BY  password | EXTERNALLY | GLOBALLY];

为角色设置和取消权限
授予系统权限:
GRANT [,system_priv,]
TO role | PUBLIC[,role| PUBLIC,]
[WITH ADMIN OPTION]
为角色赋予对象权限:
GRANT ALL[privileges]| ,object_priv,
ON [SCHEM_NAME.]object_name
TO role| PUBLIC [,role | PUBLIC,...]
[CASCADE CONSTRAINTS]

为用户授权和取消角色

GRANT role_name,[,role_name,...] TO user_name | role
[WITH ADMIN OPTION]

REVOKE role_name,...
FROM user_name|role

设置用户的默认角色:
ALTER USER username DEFAULT ROLE
role,.... |
ALL |NONE

删除:
DROP ROLE role_name







posted @ 2008-04-28 17:15 onandoff 阅读(162) 评论(2)  编辑  收藏 网摘收藏

  回复  引用    
#1楼 2008-04-28 23:23 | hhfish
light很好学呀~做笔记
最近忙论文。。。
被sql折磨
  回复  引用    
#2楼 [楼主]2008-04-29 08:35 | onandoff
@hhfish

学好这个是基础:)o(∩_∩)o...被折磨一下也不是坏事


标题  
姓名  
主页
EMail (只有博主才能看到)
验证码 *
内容(提交失败后,可以通过“恢复上次提交”恢复刚刚提交的内容)  
  登录    新用户注册  返回页首  恢复上次提交      
[使用Ctrl+Enter键可以直接提交]
 
历史上的今天: