数据库授权

数据库创建用户

  1. sqlplus /nolog;

  2. 只能在sysdba或system下修改:conn system/123456;

  3. 创建用户:create user sun identified by 521521;

  4. 授予其登陆权限,要不然登录不上去
    grant create session to sun;grant CONNECT to sun;

数据库用户的管理以及用户权限的管理

  1. 查看所有的用户:select * from dba_users;
  2. 用户密码修改(system/sysdba下):alter user *** identified by password;
  3. 用户的删除:drop user *** cascade;
  4. 查看用户的权限:select * from user_role_privs;
  5. 用户权限的授予:grant create table,create view,create procedure to sun;

    • 分配表的查询权限给用户:grant select on student to sun
    • 移除表的查询权限给用户:revoke select on student from sun
    • 分配表的更新限给用户:grant update on student to sun
  6. 用户权限的移除:revoke create table from sun;

设置一个用户查询另一个用户中所有的表

  1. 创建一个角色

    create role select_all_system_tab;
  2. 新建存储过程,存储过程在system/sysdba用户下执行
     
    declare
    cursor c_tabname is select table_name from dba_tables where owner = 'SYSTEM';--必须大写,这个是有表的用户
    v_tabname dba_tables.table_name%TYPE;
    sqlstr varchar2(400);
    begin
    open c_tabname;
    loop
    fetch c_tabname into v_tabname;
    exit when c_tabname%notfound;
    sqlstr := 'grant select on system.'||v_tabname||' to select_all_system_tab';
    execute immediate sqlstr;
    end loop;
    close c_tabname;
    end;
    /

  3. 把角色授权给sun
    grant select_all_system_tab to sun;
  4. 从用户sun中查询system中的表即可查到数据
    select * from system.student

数据库默认的三种权限

orale用户对数据库管理或对象操作的权利,分为系统权限和数据库对象权限。

1. 系统权限:系统规定用户使用数据库的权限(针对用户)


  • connect:拥有该权限的用户只可以登录oracle,不可以创建实体,不可以创建数据库结构。查看该权限下具体的权限语句select grantee,privilege from dba_sys_privs where grantee='CONNECT',查询得知里面就一个create session权限。
  • resource:拥有该权限的用户只可以创建实体,不可以创建数据库结构。同上:RESOURCE中的权限有:





























  • create trigger建立触发器
    create sequence建立序列
    create type建立类型
    create procedure建立存储过程
    create cluster建立聚簇
    create table建立表
    create indextype建立索引

  • dba:拥有该权限的实体,是系统最高权限,只有dba才可以创建数据库结构。
  • 注意:对于普通用户授予Connect、Resource权限;对于DBA管理用户授予Connect,Resource,DBA权限。

2. 数据库对象权限:该用户对其他用户的表或视图的存取权限(针对表/视图)

角色

  1. 角色是权限的集合。看上面的<<设置一个用户查询另一个用户中所有的表>>,利用存储过程将system表中所有表的权限都授予了角色myrole,下次当有其他用户也需要获取system中所有表查询权限时,直接通过将角色授予用户即可,这样日后只用维护角色即可。
  2. 角色的创建与删除:

    • 查看所有的角色:select * from dba_role_privs;
    • 查询角色拥有的权限:select * from dba_tab_privs where grantee='角色名';
    • create role myrole;–创建角色
    • grant create session to myrole;–将创建seesion的权限授予myrole
    • grant myrole to sun;–授予sun用户myrole的角色
    • drop role myrole;–删除角色
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值