oracle如何设置权限,oracle 权限设置 和 详解

http://www.xuebuyuan.com/762024.html 在使用oracle 9I em console客户端连接10G数据库时候,使用normal连接身份,会提示缺乏select any dictionary 权限。但是使用sysdba身份或者是用PL/SQL的normal身份就可以连接~ 这个问题是oracle9I的一个bug,并且oracle并不打算解决这个问题了 其实从低版本的链接到高版本的,都可能会出现此问题。 # 建立用户 create user angeos identified by angeos; 建立了用户:angeos,密码为:angeos # 对用户授权 grant connect,resource to angeos; 对用户angeos授予了连接数据库和访问资源的权限 # 对用户授权 grant create session,dba to angeos; CREATE SESSION是一个系统特权,它可以为用户提供连接数据库的能力。 DBA是一个具有超过120个系统特权的角色,所以它可以让用户在数据库中完成几乎任何工作。 # 改变用户的密码 alter user angeos identified by oracle;将用户angeos的密码改变为:oracle. # 删除用户 angeos drop user angeos; 由于用户angeos有一张表table1,所以删除用户时,我们需要指定关键字CASCADE drop user angeos cascade; # CREATE TABLE AS SELECT的语句 通过查询一个表,并且将查询结果集物化到一个常规表中来建立表。 复制表的结构,但是约束、索引和触发器等对象不会被放入新的表中。 例子: create table emp_copy as select * from scott.emp;   alter any cluster 修改任意簇的权限   alter any index 修改任意索引的权限   alter any role 修改任意角色的权限   alter any sequence 修改任意序列的权限   alter any snapshot 修改任意快照的权限   alter any table 修改任意表的权限   alter any trigger 修改任意触发器的权限   alter cluster 修改拥有簇的权限   alter database 修改数据库的权限   alter procedure 修改拥有的存储过程权限   alter profile 修改资源限制简表的权限   alter resource cost 设置佳话资源开销的权限   alter rollback segment 修改回滚段的权限   alter sequence 修改拥有的序列权限   alter session 修改数据库会话的权限   alter sytem 修改数据库服务器设置的权限   alter table 修改拥有的表权限   alter tablespace 修改表空间的权限   alter user 修改用户的权限   analyze 使用analyze命令分析数据库中任意的表、索引和簇   audit any 为任意的数据库对象设置审计选项   audit system 允许系统操作审计   backup any table 备份任意表的权限   become user 切换用户状态的权限   commit any table 提交表的权限   create any cluster 为任意用户创建簇的权限   create any index 为任意用户创建索引的权限   create any procedure 为任意用户创建存储过程的权限   create any sequence 为任意用户创建序列的权限   create any snapshot 为任意用户创建快照的权限   create any synonym 为任意用户创建同义名的权限   create any table 为任意用户创建表的权限   create any trigger 为任意用户创建触发器的权限   create any view 为任意用户创建视图的权限   create cluster 为用户创建簇的权限   create database link 为用户创建的权限   create procedure 为用户创建存储过程的权限   create profile 创建资源限制简表的权限   create public database link 创建公共数据库链路的权限   create public synonym 创建公共同义名的权限   create role 创建角色的权限   create rollback segment 创建回滚段的权限   create session 创建会话的权限   create sequence 为用户创建序列的权限   create snapshot 为用户创建快照的权限   create synonym 为用户创建同义名的权限   create table 为用户创建表的权限   create tablespace 创建表空间的权限   create user 创建用户的权限   create view 为用户创建视图的权限   delete any table 删除任意表行的权限   delete any view 删除任意视图行的权限   delete snapshot 删除快照中行的权限   delete table 为用户删除表行的权限   delete view 为用户删除视图行的权限   drop any cluster 删除任意簇的权限   drop any index 删除任意索引的权限   drop any procedure 删除任意存储过程的权限   drop any role 删除任意角色的权限   drop any sequence 删除任意序列的权限   drop any snapshot 删除任意快照的权限   drop any synonym 删除任意同义名的权限   drop any table 删除任意表的权限   drop any trigger 删除任意触发器的权限   drop any view 删除任意视图的权限   drop profile 删除资源限制简表的权限   drop public cluster 删除公共簇的权限   drop public database link 删除公共数据链路的权限   drop public synonym 删除公共同义名的权限   drop rollback segment 删除回滚段的权限   drop tablespace 删除表空间的权限   drop user 删除用户的权限   execute any procedure 执行任意存储过程的权限   execute function 执行存储函数的权限   execute package 执行存储包的权限   execute procedure 执行用户存储过程的权限   force any transaction 管理未提交的任意事务的输出权限   force transaction 管理未提交的用户事务的输出权限   grant any privilege 授予任意系统特权的权限   grant any role 授予任意角色的权限   index table 给表加索引的权限   insert any table 向任意表中插入行的权限   insert snapshot 向快照中插入行的权限   insert table 向用户表中插入行的权限   insert view 向用户视图中插行的权限   lock any table 给任意表加锁的权限   manager tablespace 管理(备份可用性)表空间的权限   references table 参考表的权限   restricted session 创建有限制的数据库会话的权限   select any sequence 使用任意序列的权限   select any table 使用任意表的权限   select snapshot 使用快照的权限   select sequence 使用用户序列的权限   select table 使用用户表的权限   select view 使用视图的权限   unlimited tablespace 对表空间大小不加限制的权限   update any table 修改任意表中行的权限   update snapshot 修改快照中行的权限   update table 修改用户表中的行的权限   update view 修改视图中行的权限     enqueue any queue 就是向所有队列中加入消息的权限;     dequeue any queue 就是可以向所有队列使消息出队的权限;     manage any queue 就是在所有所有方案下,允许运行DBMS_AQADM的权限 1.查看所有用户: select * from dba_users; select * from all_users; select * from user_users; 2.查看用户或角色系统权限: select * from dba_sys_privs; select * from user_sys_privs; 3.查看用户对象权限: select * from dba_tab_privs; select * from all_tab_privs; select * from user_tab_privs; 4.查看所有角色: select * from dba_roles; 5.查看用户或角色所拥有的角色: select * from dba_role_privs; select * from user_role_privs; 6.注意: (1)以下语句可以查看Oracle提供的系统权限 select name from sys.system_privilege_map (2)查看一个用户的所有系统权限(包含角色的系统权限) select privilege from dba_sys_privs where grantee='USER_NAME' union select privilege from dba_sys_privs where grantee in (select granted_role from dba_role_privs where grantee='USER_NAME' ); 一、权限是用户对一项功能的执行权力。在Oracle中,根据系统管理方式不同,将权限分为系统权限与实体权限两类。系统权限是指是否被授权用户可以连接到数据库上,在数据库中可以进行哪些系统操作。而实体权限是指用户对具体的模式实体(schema)所拥有的权限。这样讲可以有些模糊,举个例子来说:select any table是系统权限,它表示可以查看任何表。而select on table1是实体权限,表示对表table1的查询权限。 二、见上表 三、系统权限授权命令的使用   语法: GRANT 权限名 TO 用户|角色|PUBLIC 其中,PUBLIC表示将权限赋给数据库中所有的用户 例:赋给用户USER1权限CREATE TABLE的授权命令如下: SQL>GRANT CREATE TABLE TO USER1; 授权语句还可以增加WITH ADMIN OPTION选项,表示被授权的用户可以将它所得权限赋给其它用户,如: SQL>GRANT CREATE TABLE,CREATE VIEW TO USER1,USER2 WITH ADMIN OPTION; 若要了解各用户所拥有的系统权限,可以查询数据字典USER_SYS_PRIVS、ROLE_SYS_PRIVS。 若要回收权限,则使用REVOKE命令,如: SQL>REVOKE CREATE TABLE FROM USER1; 四、实体权限管理   实体权限是指某一用户对某一特定schema对象的操作权限。 1.实体权限分类   不同的实体类型有不同的实体权限,如下表 2.实体权限的授命令   语法如下: GRANT 实体权限名|ALL TO 用户|角色|PUBLIC 其中,ALL表示实体的所有实体权限。 如: SQL>GRANT SELECT ON BOOKS_QUTHORS TO USER1; 以下语句用来查询表的实体权限的授权信息: SQL>SELECT * FROM USER_TAB_PRIVES 若要回收实体权限,使用REVOKE,其语法如下: REVOKE 实体权限名|ALL ON 实体名 FROM 用户名|角色名|PUBLIC。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Oracle 数据库中,授权是管理用户和角色访问数据库对象的重要方式。授权是通过使用 GRANT 和 REVOKE 命令来实现的,其中 GRANT 命令授权,REVOKE 命令撤销授权。 授权过程中的 grantee 指的是被授权的用户或角色。在 GRANT 命令中,需要指定授予的对象、授予的权限以及被授予权限的用户或角色(即 grantee)。可以通过以下语法完成授权: ``` GRANT privilege [,...] ON object TO grantee [WITH GRANT OPTION]; ``` 其中,privilege 表示授予的权限,object 表示授予的对象,grantee 表示被授权的用户或角色。WITH GRANT OPTION 表示授权的用户或角色可以将授予的权限进一步授权给其他用户或角色。 例如,授予用户 "user1" 对表 "table1" 的 SELECT 权限可以使用以下命令: ``` GRANT SELECT ON table1 TO user1; ``` 在授权过程中,还可以使用角色进行授权,即将权限授予某个角色,然后再将该角色授予给用户。这样可以简化授权管理,提高安全性。例如,创建一个角色 "role1",并将 SELECT 权限授予该角色: ``` CREATE ROLE role1; GRANT SELECT ON table1 TO role1; ``` 然后将该角色授予给用户 "user1": ``` GRANT role1 TO user1; ``` 这样,用户 "user1" 就可以访问表 "table1" 了。 需要注意的是,在授权过程中,需要考虑安全性和权限管理的问题,授权过多可能导致安全漏洞,授权过少可能导致用户无法完成工作。因此,需要根据实际情况进行授权管理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值