教学文章
Technology Exchange
热门课程
400电话

免费咨询热线
400-090-9964

教学文章

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

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

版权所有@北京神脑资讯技术有限公司(CUUG,中国UNIX用户协会) Copyright ALL Rights Reserved 京ICP备11008061号-1

CUUG旗下网站:www.cuug.com.cn www.cuug.com oracle.cuug.com bbs.cuug.com www.cuug.net

电话:010-59426307 010-59426319 邮政编码:100089

地址:北京市海淀区北清路164号28-38号院