首页 热点资讯 义务教育 高等教育 出国留学 考研考公
您的当前位置:首页正文

oracle-系统权限管理

2023-11-13 来源:花图问答

默认用户 sys system scott 等

 sys用户登陆oracle    

sqlplus / as sysdba 

显示登陆用户

show user;

创建用户,同时授予会话权限

create user username identified by password;grant create session to lisi

创建用户后登陆数据库(不要在sys登陆窗口登陆,新启cmd窗口)

sqlplus lisi/lisi

 

oracle-系统权限管理

标签:cot   窗口   highlight   创建用户   oracl   grant   lis   ssi   默认   

小编还为您整理了以下内容,可能对您也有帮助:

Oracle用户权限表管理方式有哪些?

一、创建用户(一)简单创建1、权限:只有DBA用户才有权限,或有create user 的系统权限2、语法:

  • create user 用户名 identified by 密码;
  • oracle密码不能以数字打头
  • 3、实例:用户名-sam_sho、密码-sam123
  • create user  sam_sho identified by sam123;
  • 4、注意:1)刚创建的用户没有任何权限, 需要管理员分配权限。如登录权限:
  • grant create session to sam_sho ;        --分配登录权限
  • create session:登录权限。
  • 2)oracle的权限较为复杂,下面单独处理。

    (二)复杂创建1、实例
  • create usersam_shoidentified by sam123 
  • default tablespace users                      --默认表空间。users是oracle自己创建的表空间
  • temporary tablespace temp                 --临时表空间
  • quota 3m on users ;                          --分配表空间大小,3m。unlimited-不限制大小
  • grant create session to sam_sho ;        --分配登录权限
  • grant dba to sam_sho ;                       --分配DBA 角色
  • grant select on V_table to sam_sho ;   --分配查询表的权限
  • 2、表空间理解1)表存在的空间,即在逻辑上表(Table)都是存放在表空间中(Tablespace )2)一个表空间指向具体的数据文件
    技术分享

    3)resourse 角色的用户,创建的表没有表空间限制。
  • grant resourse to sam_sho ;   --分配resourse  角色
  • (三)Oracle的用户管理机制1、一些概念:
  • oracle dbms:数据库管理系统
  • db 实例:
  • 表空间
  • 数据对象
  • 用户
  • 权限:系统权限与数据库权限。
  • 角色:把常用的权限集中起来。
  • 2、权限、角色、用户的关系

    技术分享


    二、登录及修改密码(一)用户登录1、切换用户,用户登录。1)语法:
  • conn 用户名/密码 【as sysdba/sysoper】
  • 2)实例:
  • conn sam_sho/sam123;
  • conn sam_sho/sam123 as sysdba;
  • 实际登录的不是sam_sho,可以show user看看
  • 和验证机制有关,见下面。
  • 2、显示当前登录用户的名称1)语法:
  • show user;

  • (二)修改密码1、给用户修改密码1)语法:
  • passw【ord】  用户名
  • 2)实例:
  • passw sam_sho;
  • passw  
  • 3)注意:
  • 给自己修改,不需要带用户名,给别人修改需要带上。
  • 2、给别人修改密码1)权限:需要DBA的权限,或者拥有alter user 的系统权限2)语法:
  • alter user 用户名 identified by 新密码;
  • 3)实例:
  • alter user sam_sho identified by sam456;
  • (三)删除用户1、权限:一般需要DBA的权限,或者需要具有drop user的权限2、语法:
  • 语法:drop user 用户名 (cascade)
  • cascade 参数:级联删除该用户创建的表等数据对象。数据库会提醒的。
  • 3、实例:
  • drop user sam_sho ;
  • drop user sam_sho cascade;--级联删除用户创建的表等数据
  • 4、删除某个用户,但保留其数据对象
  • 方案:锁定该用户
  • alter user 用户 account lock;
  • alter user 用户 account unlock;--解锁

  • 三、用户口令
    1、概述:
  • 需要DBA身份
  • profile 是口令限制,资源限制的命令集合,当建立数据库时,oracle会自动建立名称为default 的profile。
  • 当建立用户没有指定 profile  选项,那么oracle 就会将default  分配给用户。
  • 2、账户锁定
  • 概述:指定该账户登录时最多可以输入密码的次数,也可以指定用户锁定的时间(天),一般用dba 的身份去执行该命令。
  • 实例:指定 这个用户最多只能尝试3次登录,锁定时间为2天。
  • create profile lock_account limit failed_login_attempts 3 password_lock_time 2;
  • alter user sam123 profile lock_account ;--分配
  • 技术分享

    3、账户解锁:
  • 语法:
  • alter user 用户名 account unlock;
  • 实例:
  • alter user sam123 account unlock;
  • 技术分享

    4、终止口令
  • 概述:为了让用户定期修改密码可以使用终止口令来完成
  • 实例:建立新的profile ,要求该用户每隔10天要修改自家的登录密码,宽限期为2天。
  • create profile myProfile limit password_life_time 10 password_grace_time 2;
  • alter user sam123 profile myProfile;
  • 5、历史口令:新旧密码不能重复
  • create profile myProfile2 limit password_life_time 10 password_grace_time 2 password_reuse_time 1
  • alter user sam123 profile myProfile2;
  • 6、删除口令
  • drop profile myProfile2 ;

  • 四、权限与角色(一)、概述:
    1、刚创建的用户没有任何权限(不能登录),需要赋予各种权限。oracle对于权限的管理,需要引用角色的概念。2、权限1)系统权限:用户对数据库管理的操作以及对数据对象本身的操作的权限。
  • 包括建库、建表、建索引、登录数据库、修改密码等等
  • 2)对象权限:用户对其他用户的数据对象数据操作的权限。
  • 权限主要分为:select、insert、update、delete、all、create index 等等
  • 3、角色:简化对权限的管理。1)预定义角色
  • connect :连接的角色
  • DBA:管理员角色
  • resource:这个角色可以在任何表空间中建表。
  • 2)自定义角色
    4、查看权限、角色
  • 通过PL/SQL DEV工具查看
  • 通过各种指令
  • 5、权限分配的方式
  • 直接分配权限
  • 系统权限(与数据库管理相关):
  • grant create sessionto sam_sho ;--分配登录权限
  • 对象权限(增删改查):
  • grantselectonV_tableto sam_sho ;--分配查询表的权限
  • 分配角色,批量分配权限
  • grantdbato sam_sho ;--分配DBA 角色
  • 6、撤销权限
  • 语法:revoke 权限 from 用户
  • 实例:
  • revoke select on emp from sam_sho; 从sam_sho收回emp表的查询权限
  • revoke connect from sam_sho;

  • (二)权限1、系统权限:是指执行特定类型sql命令的权限,它用于控制用户可以执行的一个或是一组数据库操作。比如当用户具有 create table 权限时,可以在其方案中建表。当用户具有 create any table 权限时,可以再任何方案中建表。1)内容
  • create session 连接数据库
  • create table 建表
  • create view 建视图
  • create public synonym 建同义词
  • create procedure 建过程、函数、包
  • create trigger 触发器
  • create cluster 建簇
  • create sequence 建索引
  • create type 
  • 2)显示:
  • oracle 提供了166系统权限,查询数据字典视图 system_privilege_map
  • select * from system_privilege_map order by name;--查询系统权限
  • 3)赋予系统权限:grant 
  • 一般情况下只有DBA才能完成 或者拥有 grant any privilege 权限
  • 赋权限语句后+ with admin option  ,实现系统权限的传递(和方案一起理解)
  • grant connect to sam_sho with admin option
  • 4)权限回收:revoke
  • 不是级联回收。
  • 2、对象权限:访问其他方案对象的权利。用户可以直接访问自己方案的对象,但是如果要访问别的方案的对象,则必须具有对象的权限。1)内容:
  • alter 修改
  • delete 删除
  • select 查询
  • insert 添加
  • update 修改
  • index 索引
  • references 引用
  • execute 执行
  • 2)显示:DBA用户可以查看对象权限 dba_tab_privs
  • select distinct privilege from dba_tab_privs;
  • 3)赋予对象权限
  • 直接可以赋权限给用户 或者角色
  • 赋权限语句后+ with grant option  ,实现系统权限的传递
  • grant select on emp to sam_sho with grant option
  • 只能赋予用户,不能赋予角色
  • 4)权限回收:revoke
  • 是级联回收。
  • (三)角色1、预定义角色:33种1)常见内容
  • connect :连接的角色
  • DBA:管理员角色(sys 和 system)。不具备启动和关闭数据库
  • resource:这个角色可以在任何表空间中建表。
  • 隐藏了 unlimited tablespace 的权限
  • 2)显示
  • 查看预定义角色:33种角色
  • select * from dba_roles;
  • 查看角色的系统权限
  • SELECT * FROM dba_sys_privs where grantee = ‘DBA‘
  • SELECT * FROM role_sys_privs WHERE role = ‘DBA‘;
  • 查看角色的对象权限
  • SELECT * FROM dba_tab_privs where grantee = ‘DBA‘
  • 查看某个用户的角色
  • SELECT * FROM dba_role_privs WHERE grantee=‘SYS‘;
  • 2、自定义角色1)创建角色
  • 注意:
  • BDA角色创建或者 需要具有create role 权限
  • 在建立角色的时候,可以设置验证方式,如不验证、数据库验证等
  • 不验证建立(一般都是这种)
  • create role 角色名 not identified
  • 数据库验证
  • create role 角色名 identified by 密码;
  • 2)给角色赋权限
  • grant create session to 角色
  • 3)实例
  • create role myRole not identified;
  • grant create session to myRole ;
  • grant select on scott.emp to myRole ;
  • grant myRole  to sam_sho;
  • 3、删除角色
  • drop role 角色名;
  • (四)给用户赋权限1、赋予直接的权限。如直接登录权限(create session)
  • grant create session to sam_sho;
  • grant select on emp to sam_sho;
  • 2、直接分配角色,批量分配权限。如
  • grant connect to sam_sho;
  • 授于sam_sho connect的角色,即拥有登录的权限。connect,包含7 种权限。
  • grant resource to sam_sho;
  • (五)用户的权限操作1、赋权限:grant  1)语法:grant  权限(角色) to 用户名;
    2)实例1:
  • grant create table to sam_sho:赋予 sam_sho 创建表的权限。
  • grant dba to sam_sho:赋予 sam_sho dba的角色,其自然具有创建表的角色。
  • 3)实例2
  • grant select on emp to sam_sho; 把emp表的查询权限赋予sam_sho
  • SELECT * FROM scott.emp;可以查询,但是需要在表前面加上scott前缀。
  • 2、收回权限:revoke1)语法:
  • revoke select on emp from sam_sho; 从sam_sho收回emp表的查询权限
  • 2)注意:
  • 谁授权,谁收回。或者DBA
  • 系统权限,不是级联回收。
  • 对象权限,是级联回收。
  • 3、权限的传递1)scott把emp表的查询权限赋予sam_sho,sam_sho再把这种权限传递给rabby_zho2)语法:
  • 对象权限使用 with grant option 进行传递
  • grant select on emp to sam_sho with grant option;(scott登录)
  • grant select on scott.emp to rabby_zho;(sam_sho登录)
  • 角色、系统权限使用 with admin option
  • grant connect to sam_sho with admin option;(scott登录)
  • grant connect to rabby_zho;
  • 3)回收
  • 系统权限,不是级联回收。
  • 对象权限,是级联回收。

  • 五、方案(Schema)1、问题:同一个数据库实例 DEV_SAM,创建了2个用户 A 和 B 。用户 A 创建表a_table,B创建表b_table。结果A 访问不了 b_table,B访问不了 a_table 。2、解决:
  • 当一个用户,创建好后,如果该用户创建了任意一个数据对象,这时,dbms就会创建一个对应的【方案】与该用户对应,并且该【方案】的名字与用户名一致。
  • 在这样的机制下,同一个数据库实例,可以创建多张相同表名的表,但是同一个方案中表名是具有唯一性的。
  • A 如果需要去访问 B方案下的数据,需要权限的转移。
  • 语法: 
  • grant 权限 to 用户名 【with grant option】 对象权限
  • grant 权限 to 用户名 【with admin option】系统权限
  • 实例
  • grant select on emp to sam_sho ;(scott登录)
  • 使用的时候,需要带【方案】名:select * from scott.emp 。
  • grant all on emp to sam_sho with grant option;可以转移
  • grant select on scott.emp to sam2;
  • 技术分享


    六、数据库的启动流程(远程登录)(一)windows:1、lsnrctl start (启动监听)2、oradim  -startup -sid  数据库实例名
  • oradim  -startup -sid  orcl
  • 3、附:查看windows系统的信息
  • systeminfo
  • (二)Linux1、lsnrctl start (启动监听)2、sqlplus sys/change_on_install as sysdba 
  • sqlplus /nolog
  • conn sys/change_on_install as sysdba 
  • 3、startup

    七、Oracle的登录认证方式(一)Windows1、oracle登录认证在windows 和linux 下是不完全相同。2、现象:1)conn XXXX/CCC as sysdba; 登录成功,并且显示当前用户为 sys。2)XXXX/CCC 可以任意,只要以 as sysdba 即可。
    2、操作系统认证1)如果【当前用户】属于本地操作系统的 ora_dba 组,即可通过操作系统认证。2)当前用户,指目前操作系统使用的用户,可以简单通过windows 任务管理器查看。
    技术分享

    3)操作系统的用户与组:
  • 我的电脑-->右击管理-->本地用户和组-->用户,如用户 sam
  • 技术分享
  • 我的电脑-->右击管理-->本地用户和组-->组,显示sam属于ora_dba组
  • 技术分享

    3、oracle 数据库验证(密码文件验证)1)对于普通用户:
  • oracle默认使用数据库验证。
  • 2)对于特权用户(比如 sys 用户,或以 as sysdba)
  • oracle 默认使用操作系统认证,如果验证不通过,再到数据库验证。
  • 通过配置 NETWORKADMINsqlnet.ora 文件,可以修改oracle登录认证方式。
  • SQLNET.AUTHENTICATION_SERVICES= (NTS)  
  • NTS:基于系统,默认的。
  • NONE:基于Oracle 验证
  • NONE,NTS:二者都验证
  • 技术分享
    (二)Linux,略。
    七、丢失 Oracle 管理员密码1、恢复办法:把原有密码文件删除,生成一个新的密码文件2、恢复步骤如下:1)搜索名为 PWD+数据库实例名.ora 文件。一般在databasePWDorcl.ora2)删除该文件,建议备份。3)生成新的密码文件,在doc 下输入命令:
  • orapwd file = 原来密码文件的全路径密码文件名.ora password=新密码 entries=10;
  • entries=10:允许几个特权用户
  • 密码文件名 一定要和原来的密码文件名一致。
  • 4)重启生效
    3、例子:
  • orapwd file=D:oracle10gdatabasePWDorcl.ora password=abc123 entries=10;

  • 八、数据库管理员
    技术分享


    技术分享















    Oracle基础(二):用户及权限管理

    标签:oracle   用户管理   权限   方案   create user   

    Oracle用户权限表管理方式有哪些?

    一、创建用户(一)简单创建1、权限:只有DBA用户才有权限,或有create user 的系统权限2、语法:

  • create user 用户名 identified by 密码;
  • oracle密码不能以数字打头
  • 3、实例:用户名-sam_sho、密码-sam123
  • create user  sam_sho identified by sam123;
  • 4、注意:1)刚创建的用户没有任何权限, 需要管理员分配权限。如登录权限:
  • grant create session to sam_sho ;        --分配登录权限
  • create session:登录权限。
  • 2)oracle的权限较为复杂,下面单独处理。

    (二)复杂创建1、实例
  • create usersam_shoidentified by sam123 
  • default tablespace users                      --默认表空间。users是oracle自己创建的表空间
  • temporary tablespace temp                 --临时表空间
  • quota 3m on users ;                          --分配表空间大小,3m。unlimited-不限制大小
  • grant create session to sam_sho ;        --分配登录权限
  • grant dba to sam_sho ;                       --分配DBA 角色
  • grant select on V_table to sam_sho ;   --分配查询表的权限
  • 2、表空间理解1)表存在的空间,即在逻辑上表(Table)都是存放在表空间中(Tablespace )2)一个表空间指向具体的数据文件
    技术分享

    3)resourse 角色的用户,创建的表没有表空间限制。
  • grant resourse to sam_sho ;   --分配resourse  角色
  • (三)Oracle的用户管理机制1、一些概念:
  • oracle dbms:数据库管理系统
  • db 实例:
  • 表空间
  • 数据对象
  • 用户
  • 权限:系统权限与数据库权限。
  • 角色:把常用的权限集中起来。
  • 2、权限、角色、用户的关系

    技术分享


    二、登录及修改密码(一)用户登录1、切换用户,用户登录。1)语法:
  • conn 用户名/密码 【as sysdba/sysoper】
  • 2)实例:
  • conn sam_sho/sam123;
  • conn sam_sho/sam123 as sysdba;
  • 实际登录的不是sam_sho,可以show user看看
  • 和验证机制有关,见下面。
  • 2、显示当前登录用户的名称1)语法:
  • show user;

  • (二)修改密码1、给用户修改密码1)语法:
  • passw【ord】  用户名
  • 2)实例:
  • passw sam_sho;
  • passw  
  • 3)注意:
  • 给自己修改,不需要带用户名,给别人修改需要带上。
  • 2、给别人修改密码1)权限:需要DBA的权限,或者拥有alter user 的系统权限2)语法:
  • alter user 用户名 identified by 新密码;
  • 3)实例:
  • alter user sam_sho identified by sam456;
  • (三)删除用户1、权限:一般需要DBA的权限,或者需要具有drop user的权限2、语法:
  • 语法:drop user 用户名 (cascade)
  • cascade 参数:级联删除该用户创建的表等数据对象。数据库会提醒的。
  • 3、实例:
  • drop user sam_sho ;
  • drop user sam_sho cascade;--级联删除用户创建的表等数据
  • 4、删除某个用户,但保留其数据对象
  • 方案:锁定该用户
  • alter user 用户 account lock;
  • alter user 用户 account unlock;--解锁

  • 三、用户口令
    1、概述:
  • 需要DBA身份
  • profile 是口令限制,资源限制的命令集合,当建立数据库时,oracle会自动建立名称为default 的profile。
  • 当建立用户没有指定 profile  选项,那么oracle 就会将default  分配给用户。
  • 2、账户锁定
  • 概述:指定该账户登录时最多可以输入密码的次数,也可以指定用户锁定的时间(天),一般用dba 的身份去执行该命令。
  • 实例:指定 这个用户最多只能尝试3次登录,锁定时间为2天。
  • create profile lock_account limit failed_login_attempts 3 password_lock_time 2;
  • alter user sam123 profile lock_account ;--分配
  • 技术分享

    3、账户解锁:
  • 语法:
  • alter user 用户名 account unlock;
  • 实例:
  • alter user sam123 account unlock;
  • 技术分享

    4、终止口令
  • 概述:为了让用户定期修改密码可以使用终止口令来完成
  • 实例:建立新的profile ,要求该用户每隔10天要修改自家的登录密码,宽限期为2天。
  • create profile myProfile limit password_life_time 10 password_grace_time 2;
  • alter user sam123 profile myProfile;
  • 5、历史口令:新旧密码不能重复
  • create profile myProfile2 limit password_life_time 10 password_grace_time 2 password_reuse_time 1
  • alter user sam123 profile myProfile2;
  • 6、删除口令
  • drop profile myProfile2 ;

  • 四、权限与角色(一)、概述:
    1、刚创建的用户没有任何权限(不能登录),需要赋予各种权限。oracle对于权限的管理,需要引用角色的概念。2、权限1)系统权限:用户对数据库管理的操作以及对数据对象本身的操作的权限。
  • 包括建库、建表、建索引、登录数据库、修改密码等等
  • 2)对象权限:用户对其他用户的数据对象数据操作的权限。
  • 权限主要分为:select、insert、update、delete、all、create index 等等
  • 3、角色:简化对权限的管理。1)预定义角色
  • connect :连接的角色
  • DBA:管理员角色
  • resource:这个角色可以在任何表空间中建表。
  • 2)自定义角色
    4、查看权限、角色
  • 通过PL/SQL DEV工具查看
  • 通过各种指令
  • 5、权限分配的方式
  • 直接分配权限
  • 系统权限(与数据库管理相关):
  • grant create sessionto sam_sho ;--分配登录权限
  • 对象权限(增删改查):
  • grantselectonV_tableto sam_sho ;--分配查询表的权限
  • 分配角色,批量分配权限
  • grantdbato sam_sho ;--分配DBA 角色
  • 6、撤销权限
  • 语法:revoke 权限 from 用户
  • 实例:
  • revoke select on emp from sam_sho; 从sam_sho收回emp表的查询权限
  • revoke connect from sam_sho;

  • (二)权限1、系统权限:是指执行特定类型sql命令的权限,它用于控制用户可以执行的一个或是一组数据库操作。比如当用户具有 create table 权限时,可以在其方案中建表。当用户具有 create any table 权限时,可以再任何方案中建表。1)内容
  • create session 连接数据库
  • create table 建表
  • create view 建视图
  • create public synonym 建同义词
  • create procedure 建过程、函数、包
  • create trigger 触发器
  • create cluster 建簇
  • create sequence 建索引
  • create type 
  • 2)显示:
  • oracle 提供了166系统权限,查询数据字典视图 system_privilege_map
  • select * from system_privilege_map order by name;--查询系统权限
  • 3)赋予系统权限:grant 
  • 一般情况下只有DBA才能完成 或者拥有 grant any privilege 权限
  • 赋权限语句后+ with admin option  ,实现系统权限的传递(和方案一起理解)
  • grant connect to sam_sho with admin option
  • 4)权限回收:revoke
  • 不是级联回收。
  • 2、对象权限:访问其他方案对象的权利。用户可以直接访问自己方案的对象,但是如果要访问别的方案的对象,则必须具有对象的权限。1)内容:
  • alter 修改
  • delete 删除
  • select 查询
  • insert 添加
  • update 修改
  • index 索引
  • references 引用
  • execute 执行
  • 2)显示:DBA用户可以查看对象权限 dba_tab_privs
  • select distinct privilege from dba_tab_privs;
  • 3)赋予对象权限
  • 直接可以赋权限给用户 或者角色
  • 赋权限语句后+ with grant option  ,实现系统权限的传递
  • grant select on emp to sam_sho with grant option
  • 只能赋予用户,不能赋予角色
  • 4)权限回收:revoke
  • 是级联回收。
  • (三)角色1、预定义角色:33种1)常见内容
  • connect :连接的角色
  • DBA:管理员角色(sys 和 system)。不具备启动和关闭数据库
  • resource:这个角色可以在任何表空间中建表。
  • 隐藏了 unlimited tablespace 的权限
  • 2)显示
  • 查看预定义角色:33种角色
  • select * from dba_roles;
  • 查看角色的系统权限
  • SELECT * FROM dba_sys_privs where grantee = ‘DBA‘
  • SELECT * FROM role_sys_privs WHERE role = ‘DBA‘;
  • 查看角色的对象权限
  • SELECT * FROM dba_tab_privs where grantee = ‘DBA‘
  • 查看某个用户的角色
  • SELECT * FROM dba_role_privs WHERE grantee=‘SYS‘;
  • 2、自定义角色1)创建角色
  • 注意:
  • BDA角色创建或者 需要具有create role 权限
  • 在建立角色的时候,可以设置验证方式,如不验证、数据库验证等
  • 不验证建立(一般都是这种)
  • create role 角色名 not identified
  • 数据库验证
  • create role 角色名 identified by 密码;
  • 2)给角色赋权限
  • grant create session to 角色
  • 3)实例
  • create role myRole not identified;
  • grant create session to myRole ;
  • grant select on scott.emp to myRole ;
  • grant myRole  to sam_sho;
  • 3、删除角色
  • drop role 角色名;
  • (四)给用户赋权限1、赋予直接的权限。如直接登录权限(create session)
  • grant create session to sam_sho;
  • grant select on emp to sam_sho;
  • 2、直接分配角色,批量分配权限。如
  • grant connect to sam_sho;
  • 授于sam_sho connect的角色,即拥有登录的权限。connect,包含7 种权限。
  • grant resource to sam_sho;
  • (五)用户的权限操作1、赋权限:grant  1)语法:grant  权限(角色) to 用户名;
    2)实例1:
  • grant create table to sam_sho:赋予 sam_sho 创建表的权限。
  • grant dba to sam_sho:赋予 sam_sho dba的角色,其自然具有创建表的角色。
  • 3)实例2
  • grant select on emp to sam_sho; 把emp表的查询权限赋予sam_sho
  • SELECT * FROM scott.emp;可以查询,但是需要在表前面加上scott前缀。
  • 2、收回权限:revoke1)语法:
  • revoke select on emp from sam_sho; 从sam_sho收回emp表的查询权限
  • 2)注意:
  • 谁授权,谁收回。或者DBA
  • 系统权限,不是级联回收。
  • 对象权限,是级联回收。
  • 3、权限的传递1)scott把emp表的查询权限赋予sam_sho,sam_sho再把这种权限传递给rabby_zho2)语法:
  • 对象权限使用 with grant option 进行传递
  • grant select on emp to sam_sho with grant option;(scott登录)
  • grant select on scott.emp to rabby_zho;(sam_sho登录)
  • 角色、系统权限使用 with admin option
  • grant connect to sam_sho with admin option;(scott登录)
  • grant connect to rabby_zho;
  • 3)回收
  • 系统权限,不是级联回收。
  • 对象权限,是级联回收。

  • 五、方案(Schema)1、问题:同一个数据库实例 DEV_SAM,创建了2个用户 A 和 B 。用户 A 创建表a_table,B创建表b_table。结果A 访问不了 b_table,B访问不了 a_table 。2、解决:
  • 当一个用户,创建好后,如果该用户创建了任意一个数据对象,这时,dbms就会创建一个对应的【方案】与该用户对应,并且该【方案】的名字与用户名一致。
  • 在这样的机制下,同一个数据库实例,可以创建多张相同表名的表,但是同一个方案中表名是具有唯一性的。
  • A 如果需要去访问 B方案下的数据,需要权限的转移。
  • 语法: 
  • grant 权限 to 用户名 【with grant option】 对象权限
  • grant 权限 to 用户名 【with admin option】系统权限
  • 实例
  • grant select on emp to sam_sho ;(scott登录)
  • 使用的时候,需要带【方案】名:select * from scott.emp 。
  • grant all on emp to sam_sho with grant option;可以转移
  • grant select on scott.emp to sam2;
  • 技术分享


    六、数据库的启动流程(远程登录)(一)windows:1、lsnrctl start (启动监听)2、oradim  -startup -sid  数据库实例名
  • oradim  -startup -sid  orcl
  • 3、附:查看windows系统的信息
  • systeminfo
  • (二)Linux1、lsnrctl start (启动监听)2、sqlplus sys/change_on_install as sysdba 
  • sqlplus /nolog
  • conn sys/change_on_install as sysdba 
  • 3、startup

    七、Oracle的登录认证方式(一)Windows1、oracle登录认证在windows 和linux 下是不完全相同。2、现象:1)conn XXXX/CCC as sysdba; 登录成功,并且显示当前用户为 sys。2)XXXX/CCC 可以任意,只要以 as sysdba 即可。
    2、操作系统认证1)如果【当前用户】属于本地操作系统的 ora_dba 组,即可通过操作系统认证。2)当前用户,指目前操作系统使用的用户,可以简单通过windows 任务管理器查看。
    技术分享

    3)操作系统的用户与组:
  • 我的电脑-->右击管理-->本地用户和组-->用户,如用户 sam
  • 技术分享
  • 我的电脑-->右击管理-->本地用户和组-->组,显示sam属于ora_dba组
  • 技术分享

    3、oracle 数据库验证(密码文件验证)1)对于普通用户:
  • oracle默认使用数据库验证。
  • 2)对于特权用户(比如 sys 用户,或以 as sysdba)
  • oracle 默认使用操作系统认证,如果验证不通过,再到数据库验证。
  • 通过配置 NETWORKADMINsqlnet.ora 文件,可以修改oracle登录认证方式。
  • SQLNET.AUTHENTICATION_SERVICES= (NTS)  
  • NTS:基于系统,默认的。
  • NONE:基于Oracle 验证
  • NONE,NTS:二者都验证
  • 技术分享
    (二)Linux,略。
    七、丢失 Oracle 管理员密码1、恢复办法:把原有密码文件删除,生成一个新的密码文件2、恢复步骤如下:1)搜索名为 PWD+数据库实例名.ora 文件。一般在databasePWDorcl.ora2)删除该文件,建议备份。3)生成新的密码文件,在doc 下输入命令:
  • orapwd file = 原来密码文件的全路径密码文件名.ora password=新密码 entries=10;
  • entries=10:允许几个特权用户
  • 密码文件名 一定要和原来的密码文件名一致。
  • 4)重启生效
    3、例子:
  • orapwd file=D:oracle10gdatabasePWDorcl.ora password=abc123 entries=10;

  • 八、数据库管理员
    技术分享


    技术分享















    Oracle基础(二):用户及权限管理

    标签:oracle   用户管理   权限   方案   create user   

    Oracle用户的权限都有哪些

    系统权限: 允许用户执行特定的数据库动作,如创建表、创建索引、连接实例等(对用户而言)

    对象权限: 允许用户操纵一些特定的对象,如读取视图,可更新某些列、执行存储过程等(是针对表或视图而言的)

    1.系统权限

    超过一百多种有效的权限(SELECT * FROM SYSTEM_PRIVILEGE_MAP查)

    数据库管理员具有高级权限以完成管理任务,例如:

    –创建新用户

    –删除用户

    –删除表

    –备份表

    系统权限分类:

    DBA: 拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构。

    RESOURCE:拥有Resource权限的用户只可以创建实体,不可以创建数据库结构。

    CONNECT:拥有Connect权限的用户只可以登录Oracle,不可以创建实体,不可以创建数据库结构。

    对于普通用户:授予connect, resource权限。

    对于DBA管理用户:授予connect,resource, dba权限。

    a.常用的系统权限:

    CREATE SESSION 创建会话

    CREATE SEQUENCE 创建序列

    CREATE SYNONYM 创建同名对象

    CREATE TABLE 在用户模式中创建表

    CREATE ANY TABLE 在任何模式中创建表

    DROP TABLE 在用户模式中删除表

    DROP ANY TABLE 在任何模式中删除表

    CREATE PROCEDURE 创建存储过程

    EXECUTE ANY PROCEDURE 执行任何模式的存储过程

    CREATE USER 创建用户

    DROP USER 删除用户

    CREATE VIEW 创建视图

    2.对象权限

    不同的对象具有不同的对象权限

    对象的拥有者拥有所有权限

    对象的拥有者可以向外分配权限

    ORACLE一共有种对象权限

    对象权限 表 视图 序列 过程

    修改(alter) √ √

    删除(delete) √ √

    执行(execute) √

    索引(index) √

    插入(insert) √ √

    关联(references) √ √

    选择(select) √ √ √

    更新(update) √ √

    另外,connect和resource的权限如下所示

    CONNECT角色:仅具有创建SESSION的权限

    RESOURCE角色:仅具有创建CLUSTER,INDEXTYPE,OPERATOR,PROCEDEURE,SEQUENCE,TABLE,TRIGGER,TYPE的权限。同时,当把ORACLE resource角色授予一个user的时候,不但会授予ORACLE resource角色本身的权限,而且还有unlimited tablespace权限,但是,当把resource授予一个role时,就不会授予unlimited tablespace权限。

    确实没有创建视图的权限,由此看来如果需要创建视图权限,只能单独授权:

    GRANT CREATE VIEW TO 用户;

    显示全文