当前位置:  数据库>oracle

Oracle用户、角色、权限管理

    来源: 互联网  发布时间:2017-04-18

    本文导语: create or replace type address as object(province varchar (20),city varchar(20)); alter TRIGGER SYS.JIS$ROLE_TRIGGER$ compile; create table test(id number primary key,name char(50));表空间授权alter  user  用户  quota  unlimited  on   表空间;alter  user  test  quota  unlimited  ...

create or replace type address as object(province varchar

(20),city varchar(20));

alter TRIGGER SYS.JIS$ROLE_TRIGGER$ compile;

create table test(id number primary key,name char(50));
表空间授权
alter  user  用户  quota  unlimited  on   表空间;
alter  user  test  quota  unlimited  on   test;


创建用户
create user 用户名 identified by 口令;
create user icwallet identified by icwallet;

删除用户
drop user cascade

修改密码
alter user 用户名 identified by 口令;
alter user icwallet identified by icwallet;

锁定:
alter user 用户名 account lock;

授权
revoke
grant create session to the_username;
grant system_privilege to username [with admin option];


创建数据库角色
create role role_name;
create role role_name identified by role_password

第一:用户管理*******************************************
用户至少需要会话的权利,否则连接也不成功;
用户在会话的权利上,应该有其他操作的权利;

Oracle的用户和口令不区分大小写,真是让人大跌眼镜;

Oralce中,所有用户必须明确被授权,才可以操作;
SQL Server中,创建的用户自动就拥有了一些权限

Oracle不依赖操作系统;SQL Server依赖Windows;

MicroSoft假定大多数用户都是合法用户,采取乐观态度;
Oracle首先假定用户都是不安全的,采取悲观态度;

Oracle中的用户是互相隔离的,称为用户模式

内置用户:
sys,网络管理员,最高权限;
    当你试图输入了用户名:sys
         密码:通用
    之后,你发现连接不上;
    而输入 用户名:system
        密码:通用
    或者   用户名:scott
         密码:tiger
    的时候都可以连接,所以你认为
    sys的权限没有system高;
    其实正是因为sys的权限高,所以你必须以
    dba的身份来登陆:sys/通用 as sysdba
//可以使用数据字典user_users来查看当前用户管理的用户:
select * from user_users;
而dba_users可以查看dba管理的用户;














system,只管理本机上的数据库;
而all_users查看所有用户,只能由dba来查看;

******创建用户:
create user 用户名 identified by 口令 [externally]
[default tablesapce 表空间名]
[temporary tablespace 临时表空间名]
[quota 整数 K|M|unlimited on 表空间名]
//注意:创建用户必须有dba的权限;
******查询用户:
其实就是对表user_users/dba_users/all_users进行查询,
只不过这里不把他们叫表,叫数据字典;而且数据字典是系统
维护的;
*******修改用户:
alter user.....//后面和创建一样;










Oracle中一个实例就是一个数据库,这个数据库相当与SQL Server的全

部数据库;
Oracle的一个数据库被分为很多个表空间,每个表空间相当于SQL

Server中的一个数据库;
  
实例演示:

create user student_user
identified by student
default tablespace users
temporary tablespace temp
quota 5m on users
quota 3m on temp




/其中,users,temp都是内置的表空间,student_user在users里有5m空

间,在temp里有3m;
新创建的用户是没有权利的:
SQL> conn student_user/student;
ERROR
ORA-01045: user STUDENT_USER lacks CREATE SESSION privilege;



logon denied

警告: 您不再连接到 ORACLE。


*****限制用户
锁定:alter user 用户名 account lock;
效果
SQL> alter user student_user account lock;
用户已更改。
SQL> conn student_user/student;
ERROR:
ORA-28000: the account is locked
警告: 您不再连接到 ORACLE。
解锁:alter user 用户名 account unlock;
口令无效:alter 用户名 password expire; 当用户创建了很多表,
如果直接删除用户,它下面的表都将被删除,所以我们可以
只使得它的口令无效;
//可见,表是用户的手下,用户没了,用户创立的表,占用的空间都就













没了;
//所以,一般情况下,我们不要删除用户;

****删除用户:
drop user 用户名[cascade]
//cascade是强制删除,即使有别人正在用这个用户的表;
//数据库管理语句是自动结束事务的,没有rollback的机会;



第二:权限管理***********************************************

授权:grant [系统特权名] [角色] [on 被授权操作表名] to [用户名

列表]
[public][with admin option]
如果是dcl语句,就不用on 被授权操作表名

grant all on student to public:把对student的所有权限授予所有

用户;

数据字典:user_sys_privs
select * from user_sys_privs
权限收回:
revoke 权限列表 on 表 from 用户;
SQL> revoke create table from iam;
撤销成功。
撤消只是撤消本次授权的权限,所以如果某个用户原来就有某个权利,
而你又给它授了同样的一个权利,然后你收回这个权限的时候,它原来
就具有的这个权利还是有的;







第三:角色管理*****************************************
因为一个用户可能需要某些权限的集合,当我们得到一新的用户的时候

,我们需要给一个
用户依次授权每个它需要的权限;角色正是一个权限的集合,用户可以

直接被授予这个
角色,用户自然就拥有了它的角色所拥有的权利;
创建角色:
create role 角色名 [no identified|identified by 口令


|externally]
not identified:指出授予该角色的用户在使用时不需要检验;
identified by:指出授予该角色的用户在使用set role命令时需要检

验;

收回权限:revoke 权限 from 角色名;

//角色就是权限的集合;

实例:
create role student_role
/
grant create table,create session,create view to student_role



    
 
 

您可能感兴趣的文章:

  • oracle 视图权限 oracle 创建视图权限不足
  • linux下安装oracle,出现没有权限的报警,怎么解决?
  • Oracle 权限管理入门
  • 求救:HPUNIX下的ORACLE7执行select * from tablename提示权限不足!!
  • Linux下安装Oracle 10G提示“bad interpreter: 权限不够”的解决
  • Oracle创建用户权限的过程
  • oracle9i在linux9上安装的权限问题!在线等候!
  • Oracle 10g创建表空间和用户并指定权限
  • Oracle 低权限数据库账户得到 OS 访问权限 提权利用
  • 一个关于JAVA操作oracle数据库时UPDATE权限的问题
  • Oracle 10g各个帐号的访问权限、登录路径、监控状态命令查询等等
  • Linux系统中Oracle数据库的用户权限
  • Oracle内置角色connect与resource的权限
  • Oracle删除当前用户下所有表的方法适用于有或没有删除权限
  • oracle用户权限管理使用详解
  • 实现Oracle数据库的存储过程中拥有“role”权限
  • 巧用Oracle系统账户默认口令来提升权限
  • oracle 9i Linux 下安装时出现 无法建立inventory目录,你可能没有相应权限,请高手帮忙,100分,在线等!
  • 入侵Oracle服务器进一步获取权限
  • Oracle 用户权限管理方法
  • Oracle 8x监控sysdba角色用户登陆情况
  • Oracle数据库中的特权和角色理解
  • 账户方案系统角色多管齐下保障Oracle的安全
  • Oracle新建用户、角色,授权,建表空间的sql语句
  • Oracle10g 预定义主要角色
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 请问在solaris下安装ORACLE,用root用户和用oracle用户安装有什么区别么?
  • oracle创建删除用户示例分享(oracle删除用户命令及授权)
  • linux6.0下安装oracle11g, 新建用户后,在用户目录下为什么没有.bash_profile文件生成? 求教高手。谢谢!
  • Oracle一个用户如何访问其它用户的表应用指南
  • oracle用户口令丢了
  • 修改oracle用户的.bash_profile之后无法正常登陆
  • linux下如何查看是什么用户安装的oracle
  • oracle+jsp 多用户查询系统讨论:
  • ORACLE 中修改用户密码的方法
  • linux中定时任务 oracle用户该如何做?
  • 杀掉oracle在线用户脚本分享
  • linux能够通过执行脚本添加oracle数据库的用户吗
  • Oracle exp 导出用户对象
  • oracle怎么删除用户提供解决方案
  • Oracle初始参数与当前用户
  • Oracle发布Oracle SQL Developer 1.2数据库开发工具 帮助用户简化开发工作
  • Oracle中查看当前用户的表
  • 怎样知道一个用户的主目录,也就是.bash_profile所在的目录?如/home/oracle
  • Linux下修改Oracle用户密码
  • 解决oracle用户连接失败的解决方法
  • Oracle 12c发布简单介绍及官方下载地址
  • 在linux下安装oracle,如何设置让oracle自动启动!也就是让oracle那个服务自动启动,不是手动的
  • oracle 11g最新版官方下载地址
  • 请问su oracle 和su - oracle有什么不同?
  • Oracle 数据库(oracle Database)Select 多表关联查询方式
  • 虚拟机装Oracle R12与Oracle10g
  • Oracle数据库(Oracle Database)体系结构及基本组成介绍
  • Oracle 数据库开发工具 Oracle SQL Developer
  • 如何设置让Oracle SQL Developer显示的时间包含时分秒
  • Oracle EBS R12 支持 Oracle Database 11g
  • Oracle 10g和Oracle 11g网格技术介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3