oracle用户,权限管理和验证机制

ORACLE三个用户

sys  超级管理员   sqlplus / as sysdba登录

system

scott

创建用户:

create useruser1 identified by user1

defaul tablespace Users

Temporary Tablespace Temp

Quota 50M on users;

默认使用users表空间,用于存放表等数据。 使用临时表空间Temp,主要用于排序。而且只可以使用Users表空间的50M大小的空间

系统权限:

         1.授权登录  grant create session to lhp;才可以登录

         2.创建表的权限: grantcreate table to lhp,这时候仍然不能创建表,为什么呢?

             因为用户虽然有了创建表的权限,但是没有使用表空间的权限,因为创建好的表都是要存放在表空间中的,所以还要使用  grant unlimited tablespaceto lhp,代表可以使用

              表空间无上限。用户一旦可以创建表,那么就拥有对这张表的增删改查。而不再需要授权。

         3. 如果某个权限赋于了public,那么所有数据库的用户都可以有这个权限  grant create any table topublic;  public是属于所有的用户的

         4.revoke createtable from lhp;撤销授权

         5.查询当前用户所拥有的系统权限: select * from user_sys_privs;

对象权限:谁拥有--谁授权

        1.我有一张表,你可以访问吗,它可以访问吗?这就是一个对象权限

       用户lisi  有表mytalble

       用户wangwu想访问lisi的表mytable的数据,则必须要lisi用户授权:grantselect on mytable to wangwu;这样的话wangwu才可以访

       问lisi中的表mytable;而且是只能查询可以继续授权grant  insert on mytable ,update on mytable ,deleteon mytable to wangwu.

 

       2. lisi用户中与表mytable有关的所有对象权限都授权与wangwu  grant all on mytable to wangwu;这时候wangwu就可以对表  

          mytable做任何操作了。

            撤销:  revoke all on mytable from wangwu;

       3.oracle对权限的管理非常严格。可以具体到列  grant update(name) onmytable to lisi;mytablename字段的修改权限授予李四。

        注意:控制到列的只有 插入和更新权限,查询和删除是不行的。

       4.可以查到当前用户可以拥有那些对象权限。

         select * from user_tab_privs以查到当前用户对表拥有那些对象权限。

         select * from user_col_privs可以查询到具体到列的权限。

权限的传递:

         1.系统权限的传递

            A 用户使用 grant alter anytable to B alter any table的权限授予B用户,B用户只是拥有权限,但是不能再传递给其他用户。只有

         带着管理权限的话才可以 grant alter any table to B with admin option;带有管理选项的。

         2.对象权限的传递

         谁创建谁拥有  grant select on mytable with grant option;带有授权选项。这时候授予权限的用户可以把这个权限再次分配到其他用

       户。

角色

       创建角色:create rolemyrole;

         给角色授权:  grant create session to myrole;

         删除角色: droprole myrole;

         有些系统权限不能授予角色:如unlimited tablespace

         下面的权限中:

                  Create table    create any table

                  Alter table      alter any table

                  Drop table      drop any table

                  没有Alter tableDrop table权限,因为一旦授予createtable权限后就拥有了对表的所有操作权限。

         表是属于一个用户的,而角色不属于。

Oracle下的三种验证机制:(监听服务—>实例服务)

          1.      操作系统验证 (我的电脑右击管理打开组,组里有一个ora_dba这是安装了oracle自动加入的一个用户。最好删除掉)比较

                危险,一般要删除掉,要不然都可以一管理员的进入。

                    conn  /  as sysdba   conn  aa/ee as sysdba登录是一样得

           2.      密码文件验证  必须输入正确的密码才可以进入。如果密码文件丢失。该怎么办?   把原来的oracle\product\10.2.0\db_1

                      \database\PWDorcl.ora文件删除重新生成即可

                  具体做法:删除E:\oracle\product\10.2.0\db_1\database\PWDorcl.ora文件。重新生成:C:\Users\Victor>orapwd

                     file=E:\oracle\product\10.2.0\db_1\database\PWDorcl.orapassword=oracle entries=10

                   生成成功后重新登录 connsys/oracle as sysdba即可

                   可以执行:select * fromv$pwfile_users;查询PWDorcl.ora文件中存放的特殊用户

           3.      数据库验证(普通用户采用的验证方式)

windows下的验证机制:

         启动监听服务:lsnrctl start

         启动oracle实例 oradim-starup -sid orcl

Linux下的验证机制:

         启动监听服务:lsnrctl start

           Sys登录: connsys/oracle as sysdba

         启动oracle实例 startup

  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值