oracle中角色和用户权限,Oracle用户的管理、权限与角色

Oracle用户的管理、权限与角色

时间:2017-08-02 来源:

一、用户管理

1、创建用户:在oracle中要创建一个新的用户,使用create user语句,一般是具有dba(数据库管理员)的权限才能使用。

create user 用户名 identified by 密码;

密码必须以字母开头,否则报错。

2、给用户修改密码

修改用户自己的密码:sql>password 用户名

修改其他用户的密码,需要具有DBA权限,或者拥有alter user的系统权限

sql>alter user 用户名 identified by 新密码

3、删除用户:一般以DBA的身份去删除某个用户,如果用其它用户去删除用户,则需要具有drop user的权限。

sql>drop user 用户名 【cascade】

在删除用户时,注意:如果要删除的用户已经创建了表,则就需要在删除时加上参数cascade(级联删除)。

4、用户管理的综合案例

创建的新用户是没有任何权限的,甚至连登录数据库的权限都没有,需要为其指定相应的权限。给一个用户赋予权限使用命令grant,回收权限使用命令revoke。

grant connect to 用户名

注:connect不是权限,而是指角色。

grant resource to 用户名:给用户赋予建表的权限。

希望xiaoming用户可以查询scott用户的emp表

grant select on emp to xiaoming(授权者可以是system/sys/scott);

select * from scott.emp;(此处的scott为方案)

希望xiaoming用户可以修改scott用户的emp表

grant update on emp to xiaoming(授权者可以是system/sys/scott);

希望xiaoming用户可以修改、删除、查询、添加scott用户的emp表

grant all on emp to xiaoming(授权者可以是system/sys/scott);

scott希望收回xiaoming对emp表的查询权限。

revoke select on emp from xiaoming

注:当表名输入为emp时,授权与回收权限需要是一个用户。如果是scott授权,system/sys无法回收权限。

如果想让system/sys回收权限,则要在表名前面加上用户名,如:scott.emp。

5、对权限的维护(权限的传递)

希望xiaoming用户可以查询scott的emp表,还希望xiaoming可以把这个权限继续传递给别人。

如果是对象权限,就加入with grant option。

grant select on emp to xiaoming with grant option

如果是系统权限,就加入with admin option。

grant connect to xiaoming with admin option

如果xiaoming的权限被回收,则其他被xiaoming赋予权限的用户的权限也被回收。

如果xiaoming的权限被回收,则xiaohong的权限也被回收。

6、使用profile管理用户口令

profile是口令限制,资源限制的命令集合,当建立数据库时,oracle会自动建立名称为default的profile。当建立用户没有指定profile选项,那profile就会将default分配给用户。

账户锁定:指定该账户(用户)登录时最多可以输入密码的次数,也可以指定用户锁定的时间(天)。一般用DBA的身份去执行该命令。

指定tea这个用户最多只能尝试3次登录,锁定时间为2天。

创建profile文件:sql>create profile lock.account limit failed.login.attempts

3 password.lock.time 2;

sql>alter user tea profile lock.account;

给账户(用户)解锁

sql>alter user tea account unlock;

终止口令:定期修改密码,使用dba身份操作。

给用户tea创建一个profile文件,要求该用户每个10天要修改自家的登录密码,宽限期为两天。

sql>create profile myprofile limit password.life.time 10

password.grace.time 2;

sql>alter user tea profile myprofile;

口令历史:如果希望用户在修改密码时,不能使用以前使用过的密码,可使用口令历史。这样,oracle就会将口令修改的信息存放到数据字典中,当用户修改密码时,oracle就会对新旧密码进行比较。当发现新旧密码一样时,就提示用户重新输入密码。

sql>create profile password.history limit password.life.time 10

password.grace.time 2password.reuse.time 10

(password.reuse.time:指定口令可充用时间,即10天后可以重用)

sql>alter user tea profile password.history ;

删除profile

sql>drop profile password.history [cascade];

二、权限和角色的初步了解

1、权限分为两种:系统权限和对象权限。

2、系统权限:指用户对数据库的相关权限,大概有140多种。如:create session。

3、对象权限:指用户对其他用户的数据对象操作的权限,Oracle常用的对象权限有25个。

select

insert

update

delete

all:以上四种权限的总称。

create index

4、角色:分为预定义角色和自定义角色。

connect实际为一种角色,类似权限的批量授权给某一角色。connect实际包含了7中权限。

resource:允许用户在任意一个表空间建表。

dba

(以上内容摘于网络,如有侵权,请告之,将第一时间删除)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值