扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
同一个包,在相同的用户下的匿名程序块中可以执行,但是在存储过程中却没有权限执行,查了下资料,一些DBMS_开头的pkg在pl/sql中用到的时候,需要显示的执行
成都创新互联"三网合一"的企业建站思路。企业可建设拥有电脑版、微信版、手机版的企业网站。实现跨屏营销,产品发布一步更新,电脑网络+移动网络一网打尽,满足企业的营销需求!成都创新互联具备承接各种类型的成都网站制作、网站设计项目的能力。经过十年的努力的开拓,为不同行业的企事业单位提供了优质的服务,并获得了客户的一致好评。
grant execute on dbms_xxxx to xxx 来赋下权限才可以。此外这个授权system用户是没有权限的,要sys 或者plsql / as dba登录才有权限授权。
授权以后可以看到:
SYSTEM@RACTEST select grantee,owner,table_name,grantor,privilege from dba_tab_privs where table_name like 'DBMS_LOCK';
GRANTEE OWNER TABLE_NAME GRANTOR PRIVILEGE
-------------------- ---------- ---------- ---------- ----------
EXECUTE_CATALOG_ROLE SYS DBMS_LOCK SYS EXECUTE
DMSYS SYS DBMS_LOCK SYS EXECUTE
CTXSYS SYS DBMS_LOCK SYS EXECUTE
EXFSYS SYS DBMS_LOCK SYS EXECUTE
MDSYS SYS DBMS_LOCK SYS EXECUTE
OLAPSYS SYS DBMS_LOCK SYS EXECUTE
SYSMAN SYS DBMS_LOCK SYS EXECUTE
ETL SYS DBMS_LOCK SYS EXECUTE
8 rows selected.
然后再次执行:
SYSTEM@RACTEST CREATE OR REPLACE PROCEDURE etl.pliutest
2 authid current_user
3 AS
4 BEGIN
5 DBMS_LOCK.sleep(1);
6 END;
7 /
Procedure created.
OK了!
现在Oracle有两种授权方式,按CPU(Process)数和按用户数(Named User Plus)。前一种方式一般用于用户数不确定或者用户数量很大的情况,典型的如互联网环境,而后一种则通常被用于用户数确定或者较少的情况。
按CPU: License数=CPU 数*系数。系数来自Oracle的一个参数表,如IBM Power6的处理器为1,AMD和Intel的处理器为0.5,详细情况见下:
则根据公式可以算出,一个SUN UltraSparc T1的4*8核处理器需要4*8*0.25=8个CPU licenses
按用户数:Oracle用户数的官方定义是每一个访问Oracle数据库的用户,无论是自然人还是设备(如工业环境中的传感器之类),都算作一个用户(Named User)。
英文官方定义:Named User Plus: is defined as an individual authorized by you to use the programs which are installed on a single server or multiple servers, regardless of whether the individual is actively using the programs at any given time. A non human operated device will be counted.
按用户数购买则对应相应的产品有对应的License的最低购买量限制,如下:
用户应该根据自己的实际用户数订购,且不少于相应版本所要求的最低用户数。
1、把这个函数的访问权限付给其它用户。grant execute on 函数名 to 其它用户。
其它用户调用函数时,前面要加上创建用户名 如:a创建函数 getFunction 。 b调用的时候为a.getFunction.
2、可以把函数建成全局函数。
1、首先以管理员身份连接数据库,输入sqlplus,然后输入管理员用户名(system)和口令密码即可连接成功。
2、创建普通用户:通过管理用户创建普通用户,连接到数据库后,在命令行输入:create user yonghuming identified by mima;。
3、授权给普通用户:刚创建好的普通用户没有管理数据库的权限,可以通过管理员用户授权普通用户,使其具有管理数据库的功能。
4、链接到普通用户一(需要先以管理员身份登入):在命令行输入:conn yonghuming/mima;(根据自己创建的用户稍作修改)。
5、链接到普通用户二(需要先以管理员身份登入):在命令行输入:conn yonghuming;(根据自己创建的用户稍作修改)。
grant select any table to b with admin option
/或
grant select any table to b with grant option
这么个意思。
以下是我找到的他们的区别
1、with admin option
with admin option的意思是被授予该权限的用户有权将某个权限(如create any
table)授予其他用户或角色,取消是不级联的。
如授予A系统权限create session with admin option,然后A又把create
session权限授予B,但管理员收回A的create session权限时,B依然拥有create session的权限。但管理员可以显式收回B create
session的权限,即直接revoke create session from B.
2、with grant option
with grant option的意思是:权限赋予/取消是级联的,如将with grant
option用于对象授权时,被授予的用户也可把此对象权限授予其他用户或角色,不同的是但管理员收回用with grant
option授权的用户对象权限时,权限会因传播而失效,如grant select on table with grant option to
A,A用户把此权限授予B,但管理员收回A的权限时,B的权限也会失效,但管理员不可以直接收回B的SELECT ON TABLE 权限。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流