Oracle 权限设置

合集下载

oracle数据库管理人员权限设置及分配表

oracle数据库管理人员权限设置及分配表

一、概述Oracle数据库是当前企业中常用的数据库管理系统之一,而数据库管理人员在企业中扮演着至关重要的角色,他们负责数据库的管理与维护,包括权限设置与分配。

本文将探讨Oracle数据库管理人员权限设置及分配表的相关内容。

二、数据库管理员的权限1. 数据库管理员(DBA)是Oracle数据库中最高权限的用户,具有对数据库进行全面控制的特权。

他们可以创建、修改、删除数据库对象,分配SQL权限,管理数据库用户和角色等。

2. DBA用户的权限通常由系统管理员在安装数据库时创建,或是通过GRANT命令授予。

3. DBA用户可以通过GRANT和REVOKE命令控制其他用户的权限,以及管理数据库对象的安全性。

三、数据库操作员的权限1. 数据库操作员(DBO)是在数据库中具有一定权限的用户,通常负责对数据库进行日常操作。

2. DBO用户可以执行SELECT、INSERT、UPDATE、DELETE等操作,并且可以创建临时表和视图。

3. DBO用户的权限通常由DBA用户通过GRANT命令分配,可以根据需要灵活控制其权限范围。

四、权限设置的最佳实践1. 了解业务需求:在设置数据库用户的权限之前,需要充分了解企业的业务需求,确保每个用户都能够在权限范围内完成工作。

2. 分配最小权限原则:根据最小权限原则,应该仅分配用户所需的最低权限,以降低数据泄露和操作错误的风险。

3. 定期审计权限:定期对数据库用户的权限进行审计,及时发现和修复不合理的权限设置,保障数据库的安全性。

五、权限分配表的编制数据库管理人员需要编制一份权限分配表,清晰地记录每个用户的权限范围,确保权限设置的合理性与一致性。

权限分配表通常包括以下内容:1. 用户名称:列出数据库中所有的用户名称。

2. 权限说明:对用户的权限进行详细说明,包括SELECT、INSERT、UPDATE、DELETE等操作的权限范围。

3. 是否受限:记录是否对用户的权限进行了限制,比如是否禁止用户执行DROP TABLE等危险操作。

oracle赋dba权限

oracle赋dba权限

oracle赋dba权限如何给Oracle数据库用户赋予DBA权限Oracle数据库的DBA(Database Administrator)权限是指最高级别的数据库管理权限,具有该权限的用户可以对数据库进行全面的管理和控制。

在某些情况下,给予用户DBA权限是必要的,例如需要进行数据库维护、性能优化或者进行一些故障排除等任务。

下面将详细介绍如何给Oracle数据库用户赋予DBA权限的步骤。

1. 连接到Oracle数据库首先,使用管理员账号连接到Oracle数据库。

这个管理员账号通常是sys 或system用户,拥有sysdba权限。

连接到Oracle数据库的命令可以使用SQL*Plus工具或者命令行界面。

例如,在Windows系统上可以使用以下命令连接到数据库:sqlplus / as sysdba2. 创建新的数据库用户接下来,需要创建一个新的数据库用户来赋予DBA权限。

使用以下SQL 语句创建一个新用户,例如,创建一个名为new_user的用户:SQL> CREATE USER new_user IDENTIFIED BY password;在这里,new_user是新用户的用户名,password是新用户的密码。

3. 授权DBA权限接下来,使用以下SQL命令将DBA角色授予新用户:SQL> GRANT DBA TO new_user;这个命令将DBA角色授予新创建的用户,使其具有DBA权限。

4. 验证DBA权限为了验证新用户是否已成功获得DBA权限,可以先注销当前的数据库连接,然后使用新用户重新连接到数据库。

使用以下命令重新连接到数据库:sqlplus new_user/password as sysdba连接成功后,可以使用以下命令查询用户的权限:SQL> SELECT * FROM session_privs;这个查询将会显示新用户所具有的权限列表,其中应该包含DBA权限。

Oracle 管理对象权限

Oracle  管理对象权限

Oracle 管理对象权限对象权限指访问其他用户模式对象的权利。

在Oracle数据库中,用户可以直接访问其模式对象,但如果要访问其他用户的模式对象时,必须具有相应的对象权限。

1.对象权限的分类根据不同的对象类型,Oracle数据库设置了不同类型的对象权限。

对象权限及对象之间的对应关系如表13-5所示。

表13-5 对象、对象权限的对应关系ALTE R DELETEEXECUTEINDEXINSERTRREADREFERENCESELECTUPDA TEDIRECTORY√FUNCTION √PROCEDURE√PACKAGE √SEQUENCE √√TABLE √√√√√√√VIEW √√√√其中,“√”表示某种对象所具有的对象权限,空格表示该对象没有某种权限。

例如,对于基本表TABLE,具有ALTER、DELETE、INDEX、INSERT、REFERENCES、SELECT、UPDATE权限,而没有EXECUTE权限。

多种权限组合在一起时,可以使用ALL关键字,表示该对象的全部权限,对于不同的对象,ALL组合的权限数量是不相同的。

对于表TABLE而言,ALL表示ALTER、DELETE、INDEX、INSERT、REFERENCES、SELECT、UPDATE权限;对于存储过程,ALL只代表EXECUTE权限。

2.授予对象权限对象权限由该对象的拥用者为其他用户授权,非对象的拥有者不得向其他用户授予对象授权。

将对象权限授出后,获权用户可以对对象进行相应的操作,没有授予的权限不得操作。

从Oracle 9i开始,DBA用户可以将任何对象权限授予其他用户。

授予对象权限所使用的GRANT语句形式如下:grant { object_priv [ (column_list) ] [,object_priv[(column_list)]]….| ALL [PRIVILEGES] ON [ schema.]objectTO { user | role | PUBLIC} [,{user | role | public}] …[with grant option]其中,OBJECT_PRIV是对象权限,COLUMN_LIST用于标识权限所对应列的列表,SCHEMA表示模式名,USER表示被授权的用户,ROLE表示被授权的角色。

oracle分配用户权限语句

oracle分配用户权限语句

oracle分配用户权限语句嘿,你知道吗,在 Oracle 里要给用户分配权限,那可真是一门学问呢!就好像你要给一个小伙伴分配任务一样,得搞清楚该给啥权限,不能多也不能少。

比如说,你想让某个用户能查看一些特定的数据,那就得用合适的语句来给他这个权限。

“GRANT SELECT ON table_name TOuser_name;”,看,这就是一条简单的分配读权限的语句啦。

就好像你给朋友一把钥匙,让他能打开特定的那扇门去看看里面的东西。

但要是想让用户能修改数据呢,那就得用不同的语句啦,“GRANT INSERT, UPDATE ON table_name TO user_name;”。

这就好比你不仅给了朋友钥匙,还告诉他可以在里面动点小手脚,改改东西呢。

哎呀,这可真不是随随便便就能搞对的呀!要是不小心给错了权限,那不就乱套了嘛!就像你本想让朋友帮忙打扫下客厅,结果不小心让他能随便进卧室翻东西了,那可不行呀!而且,分配权限的时候还得考虑周全,不能只看眼前。

比如说,以后这个用户的职责会不会变呀,到时候权限是不是又得重新调整呢。

这就跟你给朋友安排任务一样,一开始可能只让他做一件事,后来发现他还能做更多,或者原来的任务不需要他做了,那权限不就得跟着变嘛。

在 Oracle 中分配用户权限语句真的是非常重要的呀!这可关系到整个数据库的安全和正常运行呢。

要是权限分配得不合理,那可能会带来很多麻烦,甚至会导致数据泄露或者错误。

所以呀,我们可得认真对待,就像对待我们最珍视的宝贝一样,小心翼翼地去设置好每一个权限。

总之,Oracle 分配用户权限语句这事儿,可真是既有趣又充满挑战呢!我们得好好研究,才能把它玩转,让数据库乖乖听话呀!。

oracle用户管理,授权与回收权限

oracle用户管理,授权与回收权限

oracle⽤户管理,授权与回收权限⼀. ⽤户管理参数,0.删除⽤户: drop user ⽤户名 [cascade] 当我们删除⽤户时, 如改⽤户已创建过数据对象, 那么删除⽤户时必须加cascade参数, ⽤来同步删除 改⽤户的所有信息. 如还想使⽤该⽤户的数据, 则不可删除⽤户, 可以冻结该⽤户即可.1.创建⽤户⽅法⼀: create user ⽤户名 identified by 密码 ; # 创建⽤户, 但缺少必要的东西, 完整命令看下⾯. 创建的⽤户没有任何权限.ORA-01045: user QUZQ lacks CREATE SESSION privilege; logon denied 需要dba给新建的⽤户进⾏授权,如下: 基本语法: grant 权限/⾓⾊ to ⽤户 grand connect to ⽤户名 # 授权可以链接数据库 grand resource to ⽤户名 # 授权建表⽆空间⼤⼩的限制 grand dba to ⽤户名 # 设置⽤户为dba grand create session to ⽤命名 # create session权限即登陆数据库实列 使⽤revoke命令可回收权限或⾓⾊, 语法: revoke 权限/⾓⾊ from ⽤户 ⾓⾊就是权限的⼀个集合, ⾓⾊分为预先定义(即oracle定义的) 和⾃定义的2.创建⽤户⽅法⼆: sql > create user ⽤户名 identified by 密码 default tabspace users # 指定新建⽤户的表空间为users, users是oracle⾃带的⼀个表空间 temporary tablespace temp # 指定临时表空间为temp, temp空间也是oracle⾃带的 quota 3m on users; # ⽤来限制改⽤户创建的数据对象最⼤只能是3M3.oracle中⽤户的权限管理概念图如下:⼆. ⽤户⽅案 oracle会给每个⽤户创建个⽅案(⽅案可理解为⽤户的独⽴存储空间; 把oracle⽐喻成⼀个⼤房⼦, 那⽅案就相当于是⼤房⼦ 中隔出来的⼩房⼦, 每当添加个oracle⽤户时, 就会在⼤房⼦⾥隔出个⼩屋), 当然前提是该⽤户要创建数据对象, 不然是不会 被分配⽅案的. 每个⽤户的⽅案都是隔离的, 各个⽅案中的表名都可以相同; oracle给⽤户创建的⽅案名同⽤户名. 1. 现有两个⽤户, user1和user2, 如何实现user1来访问user2中的stu表呢? 正常情况这两⽤户是不能互相访问的. ⾸先使⽤user2登陆, 执⾏授权命令,如下: grant select [update | delete | insert | all ] on stu to user1 # 参数为all时, 表⽰增删改查 然后使⽤user1登陆, 执⾏相应命令, 语法如下: select * from user2.stu # select * from ⽅案名.表明 2. 有三个⽤户, user1和user2和user3, 如何把user1的stu表权限给user2,并由user2再把user1的stu表权限给user3呢 这⾥涉及两个命令: with admin option # 如果是⽀配系统权限, 则使⽤这个命令; ⽤于系统权限 with grant option # 得到权限的⽤户, 可继续分配权限, 即有⽀配所得权限的能⼒; ⽤于对象权限 grant all on user1.stu to user2 with grant option # 登陆user1前提下给user2⽀配stu表和crud该表的能⼒ grant all on user1.stu to user3 # 登陆user2把user1的stu表增删该查权限给user3, 但user3⽆再分配权限的能⼒三. ⽤户管理之限制登陆次数, 锁定账户时长 1. 创建profile限制集合, ⽤于配置限制的设置 create profile 集合名 limit failed_login_attempts 3 password_lock_time 2; limit failed_login_attempts 3 # 限制登陆次数为3 password_lock_time 2 # 3次失败后账户锁定2天 2. 把创建好的限制集合分配给⽤户user1 alter user user1 profile 集合名; 3. profile是⼝令限制.资源限制的命令集合, 当建⽴⽤户没有指定frofile选项, oracle将会产⽣个名为default的profile, 并将该default分配给⽤户.。

利用PLSQL创建Oracle数据库User用户并设置权限

利用PLSQL创建Oracle数据库User用户并设置权限

在PLSQL中创建Oracle数据库Users用户并设置权限
1、首先在PLQL Developer 中打开数据库。

使用"sys" 用户,输入数据库名称,输入该数
据库”sys”用户的密码sysdba,在”Connect as”组合框中选中“SYSDBA”。

单击OK 按钮打开数据库。

2、创建”User”型用户“DXXFLD”。

找到“Users”文件夹,右键弹出菜单中,选中”New”,
弹出用户创建界面:
在其中输入要添加的用户名”DXXFLD”,并作其他设置如下:
户名连接到数据库。

然后通过“Quotas”选项卡设置用户权限:将“Tablespace”中选中“User”, 勾选“Unlimited”复选项(这个一定要选中啊,不然创建表的时候会提示没有表空间的访问权限
的)。

最后单击”Apply”按钮使各项设置起作用。

2、使用新创建的用户创建表。

在”Tables”文件夹上右键单击,选中弹出菜单中“New”选

在之后弹出属性页下,做如下设置:
然后再设置字段名等其他属性就和直接用“System”或“Sys”等表空间创建表一样了。

要说明的是使用自定义”Users”创建的表,其在PLSQL 中“Users“->”Tables”目录下才
可见。

oracle授权创建函数的权限

oracle授权创建函数的权限

oracle授权创建函数的权限在Oracle数据库管理系统中,函数(Function)是一种特殊的可调用对象,它接收输入参数并返回一个值。

函数可以被用于各种计算和数据操作,是数据库中重要的组成部分。

当需要在Oracle数据库中创建自定义函数时,我们需要授予相应的权限。

在Oracle中,授予创建函数的权限需要通过“授权(Grant)”语句来完成。

以下是创建函数权限的具体操作步骤:1. 首先,可以使用“sys”或具有“sysdba”角色的用户登录到Oracle数据库。

2. 接着,通过使用“connect”语句连接到相关的用户或模式。

例如,我们可以使用以下语句连接到名为“HR”的用户:```connect HR/password;```3. 在成功连接到用户或模式之后,我们可以使用以下语法来授予创建函数的权限:```GRANT CREATE FUNCTION TO <用户名或角色>;```请注意,"<用户名或角色>"应替换为您想要授权的具体用户或角色名称。

这样,该用户或角色将获得在数据库中创建函数的权限。

例如,如果要授权名为“SCOTT”的用户创建函数,可以使用以下语句:```GRANT CREATE FUNCTION TO SCOTT;```4. 执行完授权语句后,Oracle数据库将授予指定用户创建函数的权限。

该用户将能够使用CREATE FUNCTION语句在数据库中创建自定义函数。

需要注意的是,在授予权限之前,确保用户已经存在,并且具有足够的权限访问所需的表、视图和其他对象。

否则,创建函数的过程可能会受到限制。

为了保证安全性和权限的精细管理,建议仅将创建函数的权限授予有关的用户或角色,以避免滥用或未经授权的操作。

总结起来,通过使用授权语句,可以在Oracle数据库中授予用户或角色创建函数的权限。

这样,他们可以通过CREATE FUNCTION语句创建自己所需的函数,并用于各种计算和数据操作中。

oracle 控制权限的语句

oracle 控制权限的语句

oracle 控制权限的语句
在Oracle中,可以使用以下语句来控制权限:
1. GRANT:授予用户或角色特定的权限。

例如:GRANT SELECT, INSERT ON table_name TO
user_name;
GRANT role_name TO user_name;
2. REVOKE:撤销用户或角色的权限。

例如:REVOKE SELECT, INSERT ON table_name FROM user_name;
REVOKE role_name FROM user_name;
3. CREATE USER:创建新用户。

例如:CREATE USER user_name IDENTIFIED BY password;
4. ALTER USER:修改用户属性。

例如:ALTER USER user_name PASSWORD EXPIRE;
ALTER USER user_name DEFAULT TABLESPACE
new_tablespace;
5. CREATE ROLE:创建新角色。

例如:CREATE ROLE role_name;
6. GRANT ROLE:授予角色给用户。

例如:GRANT role_name TO user_name;
7. SET ROLE:启用角色。

例如:SET ROLE role_name;
8. DROP USER:删除用户。

例如:DROP USER user_name;
这些语句可以帮助管理员在Oracle数据库中控制用户和角色的权限。

请注意,执行这些语句需要具有相应的特权。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、权限分类:
系统权限:系统规定用户使用数据库的权限。

(系统权限是对用户而言)。

实体权限:某种权限用户对其它用户的表或视图的存取权限。

(是针对表或视图而言的)。

二、系统权限管理:
1、系统权限分类:
DBA: 拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构。

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

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

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

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

2、系统权限授权命令:
[系统权限只能由DBA用户授出:sys, system(最开始只能是这两个用户)]
授权命令:SQL> grant connect, resource, dba to 用户名1 [,用户名2]...;
[普通用户通过授权可以具有与system相同的用户权限,但永远不能达到与sys用户相同的权限,system用户的权限也可以被回收。

]
例:
SQL> connect system/manager
SQL> Create user user50 identified by user50;
SQL> grant connect, resource to user50;
查询用户拥有哪里权限:
SQL> select * from dba_role_privs;
SQL> select * from dba_sys_privs;
SQL> select * from role_sys_privs;
删除用户:SQL> drop user 用户名cascade; //加上cascade则将用户连同其创建的东西全部删除
3、系统权限传递:
增加WITH ADMIN OPTION选项,则得到的权限可以传递。

SQL> grant connect, resorce to user50 with admin option; //可以传递所获权限。

4、系统权限回收:系统权限只能由DBA用户回收
命令:SQL> Revoke connect, resource from user50;
系统权限无级联,即A授予B权限,B授予C权限,如果A收回B的权限,C的权限不受影响;系统权限可以跨用户回收,即A可以直接收回C用户的权限。

三、实体权限管理
1、实体权限分类:select, update, insert, alter, index, delete, all //all包括所有权限
execute //执行存储过程权限
user01:
SQL> grant select, update, insert on product to user02;
SQL> grant all on product to user02;
user02:
SQL> select * from user01.product;
// 此时user02查user_tables,不包括user01.product这个表,但如果查all_tables则可以查到,因为他可以访问。

3. 将表的操作权限授予全体用户:
SQL> grant all on product to public; // public表示是所有的用户,这里的all权限不包括drop。

[实体权限数据字典]:
SQL> select owner, table_name from all_tables; // 用户可以查询的表
SQL> select table_name from user_tables; // 用户创建的表
SQL> select grantor, table_schema, table_name, privilege from all_tab_privs; // 获权可以存取的表(被授权的)
SQL> select grantee, owner, table_name, privilege from user_tab_privs; // 授出权限的表(授出的权限)
4. DBA用户可以操作全体用户的任意基表(无需授权,包括删除):
DBA用户:
SQL> Create table stud02.product(
id number(10),
name varchar2(20));
SQL> drop table stud02.emp;
SQL> create table stud02.employee
as
select * from scott.emp;
5. 实体权限传递(with grant option):
user01:
SQL> grant select, update on product to user02 with grant option; // user02得到权限,并可以传递。

6. 实体权限回收:
user01:
SQL>Revoke select, update on product from user02; //传递的权限将全部丢失。

四、同义词(Synonym):
1、创建私有同义词:
语法:SQL> create synonym 同义词名for 代替项;
user01:
SQL> grant select, upate on product to user02;
user02:
SQL> Create synonym product for user01.product;
SQL> select * from product; // 这里的product即user01.product。

同义词数据字典:
SQL> select synonym_name, owner, table_name from all_synonyms;
SQL> select synonym_name, table_name from user_synonyms;
2、DBA可以创建公共同义词(Public Synonym):公共同义词全体用户可以存取
语法:SQL> create public synonym 公共同义词名for 代替项;
SCOTT:
SQL> grant select on payment to public;
SYSTEM:
SQL> create public synonym payment for scott.payment;
3. 删除同义词:
User:SQL> drop synonym 私有同义词名;
DBA: SQL> drop public synonym 公共同义词名;。

相关文档
最新文档