设为首页 加入收藏

TOP

用户管理与权限分配5.20(一)
2015-07-24 10:51:25 来源: 作者: 【 】 浏览:4
Tags:用户 管理 权限 分配 5.20

1、方案与用户

方案是一些数据库对象(如:表、索引、视图、序列、过程、函数、触发器等)的集合,一个方案下的对象归一个用户所有。在Oracle中方案和用户基本是一个等同的概念,用户名即方案名。

当访问数据库对象时,需要注意如下一些事项:

(1) 同一方案中不能存在同名对象,但是不同方案中数据库对象可以重名。

(2) 用户可以直接访问自己方案中的数据对象,但如果要访问其他方案的数据对象,则必须具有对该对象的相应访问权限。

(3) 当用户要访问其他方案的对象时,必须附加方案名作为前缀。

2、创建用户

2 语法

Createuser 用户名 identified by 密码

[defaulttablespace 表空间名1]

[temporarytablespace表空间名2]

[quota[integer k|m] |[unlimited] on tablespace表空间名1]

[account lock| account unlock]

2 参数说明

l 用户名和密码:一般为字母、数字、“#”、“_”符号。

l default tablespace:表示该用户在创建数据对象时使用的默认表空间。

l temporary tablespace:表示该用户使用的临时表空间。

l quota integer k|m ontablespace:表示该用户在指定的表空间中允许占用的最大空间。

l quota unlimited ontablespace:表示该用户在指定的表空间中可以占用的空间大小没有上限。

l account lock:表示该用户被锁定。默认情况是account unlock。

2 举例:

(1) 创建一个user1用户,口令为123,并设置默认表空间为users,临时表空间为temp。

SQL> conn /as sysdba

SQL> createuser user1 identified by 123 default tablespace users temporarytablespace temp;

(2) 创建一个user2用户,口令为123,并设置默认表空间为users且最多可使用大小为1m,临时表空间为temp且不限制其大小,user2用户创建时被锁定。

SQL> createuser user2 identified by 123 default tablespace users temporarytablespace temp quota 1m on users accountlock;

2 说明:

(1) 如果建立用户时不指定defaulttablespace子句,Oracle会将SYSTEM表空间作为用户默认表空间。

(2) 如果建立用户时不指定temporarytablespace子句,Oracle会将数据库临时表空间作为用户临时表空间。

(3) 初始建立的用户没有任何权限,不能执行任何数据库操作,所以为了使用户可以连接到数据库,必须授权其create session 权限。

SQL> conn user1/123 --是否能登陆?

SQL> conn / as sysdba

SQL> grant createsession to user1;

(4) 如果建立用户时没有为表空间指定quota子句,那么用户在特定表空间上的配额为0,用户将不能在相应的表空间上建立数据对象。

SQL> connuser1/123 --是否能登陆?

SQL> createtable S(sno char(2)); --是否能建表?

SQL> conn /as sysdba

SQL> grantcreate table to user1;

SQL> connuser1/123

SQL> create table S(snochar(2)); --是否能建表?

SQL> insert into Svalues('11'); --是否能插入数据?

3、修改用户

管理员对以创建的用户进行修改,包括:修改用户口令,改变用户默认表空间、临时表空间、磁盘配额等。

2 语法

Alter user 用户名identified by 密码

[default tablespace 表空间名1]

[temporary tablespace表空间名2]

[quota [integer k|m]|[unlimited] on tablespace表空间名1]

[account lock| accountunlock]

2 举例:

(1) 修改用户的磁盘限额

SQL> conn /as sysdba

SQL> alter user user1quota 1m on users;

SQL> connuser1/123

SQL> insert into Svalues('11'); --是否能插入数据?

SQL> conn / as sysdba

SQL> create tableuser1.tj as select * from dba_objects where 1=2;

SQL> insert intouser1.tj select * from dba_objects;

(2) 修改用户口令

SQL> conn /as sysdba

SQL> alteruser user1 identified by 321;

SQL> connuser1/123

SQL> connuser1/321

(3) 锁定或解锁被锁定的用户

SQL> conn /as sysdba

SQL> grant createsession to user2;

SQL> conn user2/123 --是否能登陆?

SQL> conn / as sysdba

SQL> alter user user2account unlock;

SQL> connuser2/123 --是否能登陆?

SQL> conn / as sysdba

SQL> alter user user2account lock;

SQL> connuser2/123 --是否能登陆?

4、删除用户

2 语法

Drop user 用户名[cascade];

2 说明:如果用户拥有数据库对象,则删除用户时必须加cascade选项,此时连同该用户所拥有的对象一起删除。

2 举例

SQL> conn / as sysdba

SQL> drop user user2; --是否能删除用户user2?

SQL> drop user user1; --是否能删除用户user1?

SQL> conn user1/321

SQL> drop table S;

SQL> conn / as sysdba

SQL> drop useruser1; --是否能删除用户user1?

SQL> conn /as sysdba

SQL> createuser user1 identified by 123 default tablespace users temporarytablespace temp;

SQL> grant createsession to user1;

SQL> grantcreate table to user1;

SQL> connuser1/123

SQL> create table S(snochar(2));

SQL> conn /as sysdba

SQL> drop user user1cascade; --是否能删除用户user1?

5、用户权限管理

2 权限介绍

权限是指执行特定类型sql命令或是访问其它方案对象的权利。Oracle数据库中将权限分为两大类:系统权限和对象权限。如果要执行某种特定的数据库操作,则必须为用户授予系统权限;如果用户要访问其他方案的

首页 上一页 1 2 3 下一页 尾页 1/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇java生成自定义的表ID 下一篇【问题收录】ubuntu下weka链接mys..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·JAVA现在的就业环境 (2025-12-26 01:19:24)
·最好的java反编译工 (2025-12-26 01:19:21)
·预测一下2025年Java (2025-12-26 01:19:19)
·Libevent C++ 高并发 (2025-12-26 00:49:30)
·C++ dll 设计接口时 (2025-12-26 00:49:28)