oracle创建函数权限,oracle创建用户并赋予权限

http://www.itjxue.com  2023-01-08 13:18  来源:未知  点击次数: 

oracle 创建 function 时需要的权限

权限不充分你给它授权不就行了么。

grant dba to scott;就行了。

oracle某个用户创建了函数怎么给其他用户调用?

1、把这个函数的访问权限付给其它用户。grant

execute

on

函数名

to

其它用户。

其它用户调用函数时,前面要加上创建用户名

如:a创建函数

getFunction

b调用的时候为a.getFunction.

2、可以把函数建成全局函数。

oracle 创建用户怎么授予创建数据库的权限

采用sys or system / manager as sysdba; 连接数据库。

创建普通用户konglin: create user konglin identified by pwd_oracle;

删除用户, drop user konglin;

授予用户登录数据库的权限: grant create session to konglin;

授予用户操作表空间的权限:

grant unlimited tablespace to konglin;

grant create tablespace to konglin;

grant alter tablespace to konglin;

grant drop tablespace to konglin;

grant manage tablespace to konglin;

授予用户操作表的权限:

grant create table to konglin; (包含有create index权限, alter table, drop table权限)

授予用户操作视图的权限:

grant create view to konglin; (包含有alter view, drop view权限)

授予用户操作触发器的权限:

grant create trigger to konglin; (包含有alter trigger, drop trigger权限)

授予用户操作存储过程的权限:

grant create procedure to konglin;(包含有alter procedure, drop procedure 和function 以及 package权限)

授予用户操作序列的权限:

grant create sequence to konglin; (包含有创建、修改、删除以及选择序列)

授予用户回退段权限:

grant create rollback segment to konglin;

grant alter rollback segment to konglin;

grant drop rollback segment to konglin;

授予用户同义词权限:

grant create synonym to konglin;(包含drop synonym权限)

grant create public synonym to konglin;

grant drop public synonym to konglin;

授予用户关于用户的权限:

grant create user to konglin;

grant alter user to konglin;

grant become user to konglin;

grant drop user to konglin;

授予用户关于角色的权限:

grant create role to konglin;

授予用户操作概要文件的权限

grant create profile to konglin;

grant alter profile to konglin;

grant drop profile to konglin;

允许从sys用户所拥有的数据字典表中进行选择

grant select any dictionary to konglin;

ORACLE数据库中的权限和角色

ORACLE数据库中的权限和角色

Oracle数据库是一种大型关系型的数据库,我们知道当使用一个数据库时,仅仅能够控制哪些人可以访问数据库,哪些人不能访问数据库是无法满足数据库访问控制的。DBA需要通过一种机制来限制用户可以做什么,不能做什么,这在Oracle中可以通过为用户设置权限来实现。权限就是用户可以执行某种操作的权利。而角色是为了方便DBA管理权限而引入的一个概念,它实际上是一个命名的权限集合。

1 权限

Oracle数据库有两种途径获得权限,它们分别为:

① DBA直接向用户授予权限。

② DBA将权限授予角色(一个命名的包含多个权限的集合),然后再将角色授予一个或多个用户。

使用角色能够更加方便和高效地对权限进行管理,所以DBA应该习惯于使用角色向用户进行授予权限,而不是直接向用户授予权限。

Oracle中的权限可以分为两类:

?系统权限

?对象权限

1.1 系统权限

系统权限是在数据库中执行某种操作,或者针对某一类的对象执行某种操作的权利。例如,在数据库中创建表空间的权利,或者在任何模式中创建表的权利,这些都属于系统权限。在Oracle9i中一共提供了60多种权限。

系统权限的权利很大,通常情况下:

① 只有DBA才应当拥有alter database系统权限,该权限允许用户对数据库物理结构和可用性进行修改。

② 应用程序开发者一般应该拥有Create Table、Create View和Create Type等系统权限,用于创建支持前端的数据库模式对象。

③ 普通用户一般只具有Create session系统权限(可以通过Connection角色获得),只有Create Session系统权限的用户才能连接到数据库

④ 只有具有Grant Any PRivilege系统权限用户,或者获取了具有With Admin Option选项的系统权限的用户,才能够成为其它用户授予权限。

1.2对象权限

对象权限是针对某个特定的模式对象执行操作的权利。只能针对模式对象来设置和管理对象权限。

对于模式对象:表、视图、序列、存储过程、存储函数、包都可以对象设置权限。不同类型模式对象具有不同的对象权限。比如,表、视图等对象具有查询(Select)、修改(Update)、删除(Delete)等对象权限,而存储过程、存储函数等对象则具有执行(Execute)等对象权限。

但是并不是所有的模式对象都可以设置对象权限。比如簇、索引、触发器以及数据库链接等模式就不具有对象权限。这些模式对象的访问控制是通过相应的.系统权限来实现的,比如,要对索引进行修改,必须拥有Alter Any Index系统权限。

用户自动拥有他的模式中所有对象的全部对象权限,他可以将这些对象权限授予其他的用户或角色。比如,Test1用户创建了一个表Table1,在没有授权的情况下,用户Test2不能查询、修改、删除这个表。如果Test1将ETP表的Select对象权限授予了Test2,则该用户就可以查询Table1表了。如果在为其它用户授予对象权限时用了With Grant Option选项,被授予权限的用户还可以将这个权限在授予其他用户。

2 角色

2.1角色的概念

角色就是多个相关权限的命名集合。通过角色来进行对用户授予权限,可以大大简化DBA的工作量。比如,处于统一部门中的30多个用户都需要访问数据库中的一系列表,DBA可以将这些表的中合适的对象权限授予一个角色,然后在把这个角色授予这些用户,这样进行操作要比为没有用户进行授权要便捷多了,而且要对这些用户的权限进行统一修改,只需要修改角色的权限即可。

2.2角色的优点

通过角色为用户授予权限,而不是直接向各个用户授权,具有以下优点:

?简化权限管理 DBA将用户群分类,然后为每一类用户创建角色,并将该角色授予这类用户所需要的权限,最后在将改角色授予该类中的各个用户。这样不仅简化了授权操作,而且当这类用户的权限需求发生改变时,只需要把角色的权限进行改动,而不必修改每一位用户的权限。

?动态权限管理 角色可以被禁用或激活。当角色被禁止使用时,拥有该角色的用户不再拥有授予改角色的权限了。这样就可以对多个用户的权限进行动态控制了。

?灵活的编程能力 角色是存储在数据字典中的,并且可以为角色设置口令。这样就能够在应用程序中对角色进行控制。比如禁用或者激活等操作。

下面以Oracle9i为例,给出具体的实现用户授权:

(1)设定各种角色,及其权限

CREATE ROLE checkerrole DENTIFIEDBYxm361001;

CREATE ROLE defaultrole IDENTIFIEDBYdefaultrole;

GRANT SELECT,UPDATE ON

account.paytable TO checkerrole;

GRANT CONNECT TO defaultrole;

(2)创建用户

CREATE USER xiaoli IDENTIFIEDBY xiaoli;

(3)授权

GRANT checkerrole TO xiaoli;

GRANT defaultrole TO xiaoli;

(4)设定用户缺省的角色

ALTER USER xiaoli DEFAULTROLE defaultrole;

(5)注册过程

CONNECT xiaoli/xiaoli@oracle

此时用户只有其缺省角色的权限。

(6)激活角色

SET ROLE checkerrole IDENTIFIEDBY xm361001;

----操作成功后,xiaoli拥有checkerrole的权限。

----这里的角色和口令是固定的,在应用系统中可以由应用管理人员自行设置则更为方便安全

;

oracle 新建的用户很多函数用不了,如何赋权?例如10g某个用户用不了STRING_AGG,STRING_AGG

先看下string_agg函数的所有者是谁,比如是A,然后赋给新用户DBA权限,使用函数时这样使用 A.string_agg()就可以使用了。

oracle创建用户后需要授哪些权限

具体需要哪些权限需要看用户的实际需要。\x0d\x0a系统权限分类:\x0d\x0aDBA: 拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构。\x0d\x0aRESOURCE:拥有Resource权限的用户只可以创建实体,不可以创建数据库结构。\x0d\x0aCONNECT:拥有Connect权限的用户只可以登录Oracle,不可以创建实体,不可以创建数据库结构。\x0d\x0a对于普通用户:授予connect, resource权限。\x0d\x0a对于DBA管理用户:授予connect,resource, dba权限。\x0d\x0a系统权限授权命令:\x0d\x0a系统权限只能由DBA用户授出:sys, system(最开始只能是这两个用户)\x0d\x0a授权命令:SQL grant connect, resource, dba to 用户名1 [,用户名2]...;\x0d\x0a注:普通用户通过授权可以具有与system相同的用户权限,但永远不能达到与sys用户相同的权限,system用户的权限也可以被回收。

(责任编辑:IT教学网)

更多

推荐软件水平考试文章