(第2讲)oracle的用户管理

oracle安装成功后,会默认生成三个用户:

sys用户:超级管理员,全县最高,他的角色是dba,,密码默认是change_on_install;

system用户:是系统管理员,权限也比较高,他的角色是dbaoper;密码默认是manager;

scott用户:普通用户,密码默认是tiger。

sys  与 system 的区别:

sys 有create database 的权限,而system 没有,其他相似。

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

eg: create user xiaomign identified by m123;//create user 是关键词,xiaoming是用户名。

                                                                 //identified by 是关键词,m123是密码

 

2、给用户修改密码:

(1)给自己修改密码的SQL语句:

          password  用户名;//用户名也可以不用

(2)如果给别人修改密码则需要具有dba 权限的或者拥有  alter user 的系统权限,修改密码的SQL语句是:

            alter user 用户名 identified by 新密码;


3、删除用户:一般以dba的身份去删除某个用户。自己删除自己是不允许的。删除用户的SQL语句如下:

           drop user  用户名 [cascade];//带上cascade是指将该用户创建的表都删除

如果在删除用户时,注意如果要删除的用户已经创建了表,需要在删除的时候

带上一个参数:cascade。

4、权限的赋予和收回(grant、revoke)

新创建的用户:没有登录数据库的权限,需要为其指定相应的权限,

给一个用户赋权限使用命令 grant;收回权限使用命令revoke。

可以使用system或者sys给需要登录权限的用户赋权限。

(1)赋权限的SQL语句如下:

        grant connect to xiaoming ;

        然后授权成功就可以登录了:conn xiaoming/m123;

         grant resource to xiaoming;//授权成功,就可以建表了

         create table test(useId varchar2(30),username varchar2(30));

(2)希望小明去查询scott的emp表:先授权给xiaoming---再用xiaomign登录---查找,

        grant select on emp to xiaoming;//system.sys.scott可以授权给xiaoming

        conn xiaoming/m123;

       select * from scott.emp;//提到方案的概念,找Scott下的emp表

(3)希望小明去修改scott的emp表:先授权给xiaoming--再用xiaomign登录--修改,

      grant update on emp to xiaoming;//system.sys.scott可以授权给xiaoming

      conn xiaoming/m123;

      update * from scott.emp;//提到方案的概念,找Scott下的emp表

(4)希望小明去修改、删除、查询、添加scott的emp表:

先授权给xiaoming--再用xiaomign登录--修改、删除、查询、添加

       grant all on emp to xiaoming;//system.sys.scott将emp这张表的所有权限授权给xiaoming

(5)scott希望收回xiaoming对emp的全部权限

         conn  scott/tiger;

         revoke select on   emp   from xiaoming;//收回xiaoming 查询emp表的权限

         select *  from  scott.emp;//会得到表或视图不存在

5、切换用户的SQL语句: conn system/manager;

6、对权限的维护

    //希望xiaoming 用户可以去查询scott的emp表,并且希望xiaoming 能把这种权限给别人;

    (1)如果是对象权限,直接在后边加上with grant option

      grant select on emp to xiaoming with grant option;//设置xiaoming可以给别的用户赋权限

     conn system/manager;//连上system用户

     create user xiaohong identified by m123;//用system用户创建xiaohong用户

     grant connect to xiaohong;//给xiaohong 赋登录数据库的权限

     conn xiaoming/m123;//登录xiaoming 用户,尝试用xiaoming用户给xiaohong赋权限

      grant  select on scott.emp to xiaohong;//给xiaohong赋查询scott的emp表的权限

    (2)如果是系统权限,直接在后边加上withadmin option

      grant connect to xiaoming with admin option;//设置xiaoming可以给其他用户赋相同的系统权限

注意:如果scott把xiaoming对emp表的查询权限收回,那么xiaohong的权限还有吗?没有了,被回收了

    

7、使用profile管理用户口令

profile是口令限制,资源限制的命令集合,当建立数据库时,oracle会自动建立名称为default的

profile。当建立用户没有指定profile选项,那oracle就会将default分配给用户。

(1)锁定账户:指定该用户登录时最多可以输入密码的次数,也可指定用户账户锁定的时间,一般

用dba的身份去执行该命令。

例如:指定scott这个用户最多只能尝试3次登录,锁定时间为2天,

创建profile文件的SQL语句:

//创建配置文件

create profile lock-account  limit  falied_login_attempts3  password_lock_time 2;//红色部分是可以改变的

//将配置文件用在tea用户上

alter user tea profile lock_account;

(2)给用户解锁

alter user tea account unlock;//红色是可改变的,是指需要解锁的用户

(3)终止口令

为了让用户定期修改密码可以使用终止口令的指令来完成,同样这个命令也需要dba身份来操作。

例子:给前面创建的用户xiaoming创建一个profile文件,要求该用户每隔10天要修改自己的登录密码,宽限期为2天。

create profile myprofile limit password_life_time10 password_grace_time 2;

alter user xiaoming profilemyprofile;//把配置文件分配给用户

(4)口令历史

如果希望用户在修改密码的时候不能使用以前的密码,可使用口令历史,这样oracle就会将口令修改的信息存放到

数据字典中,这样当用户修改密码时,oracle就会新旧密码进行比较,如果发现一样,就会提示用户重新输入密码

     1)建立profile

      create profileprofile_history limit password_life_time 10 password_grace_time 2

password_reuse_time  10;

    password_reuse_time是指  指定口令可以重用时间(即10天后就可以重用)

    2)分配给某个用户

     alter userxiaoming profile myprofile;

(5)删除profile

当不需要某个profile文件时,可以删除该文件,

     drop  profile password_history [cascade];

————————————————————————————————————————————————

1、oracle的权限分为两种:系统权限(140多种)和对象权限(25多种)。

系统权限:是指用户对数据库的相关权限;比如说建库、建表、建索引、建存储过程、登录数据库、修改密码;

对象权限:是指用户对其他用户的数据对象操作的权限。简单的划分有:select/insert/

/update/delete/all/create all......

2、数据对象:这个用户创建的表、触发、视图、存储过程等数据库对象。

数据库中不只是有表,还有存储过程、触发器、视图、函数、过程、包、类型、角色、表空间等。

3、角色:事先定义一些角色(比如connect,dba,resourse),当新建一个数据库时,需要一些基本的授权,就是批量的将一些基本的基本权限给一个角色,就比如说一个人的职位是市长,就将一系列市长的权限给他。

角色分为自定义角色和预定义角色。如果把dba赋给用户,该用户就成了数据管理员。

4、方案:

5、oracle中可以有两张一样名字的表,因为oracle中是以用户为单位进行管理的,所以可以再不同用户下有相同名字的表。

6、

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值