March 2009 Archives

Web service 的相关概念
=================================================================================
* XML: 事实上已成为信息交换的标准
* SOAP: 通过 HTTP, FTP, SMTP 之类的协议传输 XML
* WSDL: 一个 Web service 的接入点,包含使用 Web service 所需的全部信息
* UDDI: ?


Oracle 的 Web Service 能力
=================================================================================
* Oracle Database 10g / Oracle Application Server 10g 两个产品都可用来实现 Web Service
* 即可使用(Consume)Web Service,也可提供(Provide)Web Service
* Oracle Database 10g web services,即把数据库功能作为 Web Service 提供给使用者
* Oracle Database 10g web services 可利用的技术包括:PL/SQL (packages, procedures, functions, and triggers), SQL queries, SQL

DML statements, and Java stored procedures


OC4J
=================================================================================
* OC4J 是 Oracle Application Server 的组件之一
* OC4J 包括以下服务: Web Container、Enterprise JavaBean Container、JMS Server


OC4J 安装配置
=================================================================================
* 下载了 Oracle Containers for J2EE Standalone Distributions - Production Releases 10.1.3.4
  软件介绍:http://www.oracle.com/technology/tech/java/oc4j/1013/index.html
  下载地址:http://www.oracle.com/technology/software/products/ias/htdocs/utilsoft.html
 
* 此版本 OC4J 包含的内容
  The OC4J Standalone Distributions includes:
  ! an HTTP/S server
  ! all of the required J2EE 1.4 APIs and services
  ! a complete EJB 3.0 and JPA implementation,
  ! Oracle TopLink
  ! extensive Web Services capabilities
  ! and the browser-based Application Server Control Console management interface to configure the server and deploy

applications.

* 安装要求
  Java2 Standard Edition (J2SE) SDK version 5.0 (or 1.4.2)
 
* 安装
  解压到 D:\Zhengwu\Java\OC4J 目录

* 配置
  在 D:\Zhengwu\Java\OC4J\bin\oc4j.cmd 中加入两行,配置 JAVA_HOME 和 ORALCE_HOME

  set ORACLE_HOME=D:\Zhengwu\Java\OC4J
  set JAVA_HOME=D:\Zhengwu\Java\JDK6_12 
 
* 启动/停止 OC4J
  cd D:\Zhengwu\Java\OC4J\bin\
  oc4j -start
  oc4j -shutdown -port 23791 -password welcome
 
* 第一次启动提示设置 OC4J administrator 密码

  2009-3-26 16:41:11 com.evermind.server.XMLApplicationServerConfig randomizeJtaAdminPassword
  信息: Updating JtaAdmin account
  09/03/26 16:41:11 Set OC4J administrator's password (password text will not be displayed as it is entered)
  Enter password: 

  OC4J administrator 用户名为:oc4jadmin
  密码设置为:welcome

* 访问
 
  首页:http://10.10.10.103:8888 
  管理界面:http://10.10.10.103:8888/em/

* 配置数据源,连接 coLinux 虚拟机上的数据库
 
  OC4J 管理界面\管理\管理任务\服务\JDBC 资源, 创建一个数据源
  创建了命名为 DS_VZW1840 的"本机数据源","应用程序"选的是 default, "JNDI 位置"手工命名为:jdbc/DS_VZW1840

  实际上修改了 D:\Zhengwu\Java\OC4J\j2ee\home\config\data-sources.xml 文件,
  在 <data-sources> </data-sources> 之间加入了以下内容
 
  <native-data-source
    user="oraws"
    password="oraws"
    url="jdbc:oracle:thin:@10.10.10.104:1521:ORADB10G"
    login-timeout="30"
    data-source-class="oracle.jdbc.pool.OracleDataSource"
    jndi-name="jdbc/DS_VZW1840"
    name="DS_VZW1840"
  />
  

如何 create, publish PL/SQL web service
=================================================================================
1 数据库对象,见 scripts_create.sql

2 配置数据源

Database web service 的实现机制是:利用 OC4J 提供的 web services assembler tool,给 Database 功能套上一个 Java Class。
可以被套的 Database 功能包括:SQL、PL/SQL、Java Stored Procedure

3 uses the WebServicesAssembler JAR file to publish the web service using the config.xml file

set ORACLE_HOME=D:\Zhengwu\Java\OC4J
set CLASSPATH=.;%ORACLE_HOME%\webservices\lib\wsdl.jar;%ORACLE_HOME%\lib\xmlparserv2.jar;%ORACLE_HOME%\soap\lib\soap.jar

D:\Zhengwu\Java\JDK6_12\bin\java -jar %ORACLE_HOME%\webservices\lib\WebServicesAssembler.jar -config "C:\Documents and

Settings\zw1840\桌面\2009.03.24.Oracle.Web.Service\config.xml"

执行后提示:

Please wait ...
ORAWS.PKG_DBFUNC
注意:\tmp\pkg_dbfunc\db\func\place\order\pkg_dbfuncBase.java 使用了未经检查或不
安全的操作。
注意:要了解详细信息,请使用 -Xlint:unchecked 重新编译。
注意:proxy\db\func\place\order\proxy\pkg_dbfuncProxy.java 使用了未经检查或不安
全的操作。
注意:要了解详细信息,请使用 -Xlint:unchecked 重新编译。

4 deploys the web service with the deployment name of "dbfunc."

D:\Zhengwu\Java\JDK6_12\bin\java -jar %ORACLE_HOME%\j2ee\home\admin.jar ormi://10.10.10.103 oc4jadmin welcome -deploy -file

./dbfunc.ear -deploymentName dbfunc

执行后提示:

Uploading file C:\Documents and Settings\zw1840\.\dbfunc.ear to oc4j server side

[ 2009-03-26 17:36:24.500 CST ] dbfunc 的 Application Deployer 开始。
[ 2009-03-26 17:36:24.750 CST ] 将档案复制到 D:\Zhengwu\Java\OC4J\j2ee\home\applications\dbfunc.ear
[ 2009-03-26 17:36:24.750 CST ] 初始化 D:\Zhengwu\Java\OC4J\j2ee\home\applications\dbfunc.ear 开始...
[ 2009-03-26 17:36:24.765 CST ] 解包 dbfunc.ear
[ 2009-03-26 17:36:24.812 CST ] 解包 dbfunc.ear 完成
[ 2009-03-26 17:36:24.812 CST ] 解包 dbfunc_web.war
[ 2009-03-26 17:36:24.859 CST ] 解包 dbfunc_web.war 完成
[ 2009-03-26 17:36:24.875 CST ] 初始化 D:\Zhengwu\Java\OC4J\j2ee\home\applications\dbfunc.ear 结束...
[ 2009-03-26 17:36:24.875 CST ] 启动应用程序: dbfunc
[ 2009-03-26 17:36:24.875 CST ] 初始化类加载程序
[ 2009-03-26 17:36:24.890 CST ] 初始化 EJB 容器
[ 2009-03-26 17:36:24.890 CST ] 加载连接器
[ 2009-03-26 17:36:25.046 CST ] 启动资源适配器
[ 2009-03-26 17:36:25.062 CST ] 初始化 EJB 会话
[ 2009-03-26 17:36:25.062 CST ] 提交类加载程序
[ 2009-03-26 17:36:25.062 CST ] 初始化 dbfunc_web 开始...
[ 2009-03-26 17:36:25.078 CST ] 初始化 dbfunc_web 结束...
[ 2009-03-26 17:36:25.093 CST ] 已启动的应用程序: dbfunc
[ 2009-03-26 17:36:25.140 CST ] dbfunc 的 Application Deployer 完成。操作时间: 640 msecs

5 binds the dbfunc web service to the default web site named default-web-site with the path /plsqlsample 

D:\Zhengwu\Java\JDK6_12\bin\java -jar %ORACLE_HOME%\j2ee\home\admin.jar ormi://10.10.10.103 oc4jadmin welcome -bindWebApp

dbfunc dbfunc_web default-web-site /plsqlsample

 

如何 invoke PL/SQL web service
=================================================================================
http://10.10.10.103:8888/plsqlsample/dbfunc

http://10.10.10.103:8888/plsqlsample/dbfunc?WSDL

 


参考
=================================================================================
[1] Build a PL/SQL Web Service / 创建 Oracle Web Service
    http://www.oracle.com/technology/pub/articles/price_10gws.html

[2] Consuming Web Services / 在 9i 中使用 UTL_HTTP 包访问 Web Service
    http://www.oracle-base.com/articles/9i/ConsumingWebServices9i.php

[3] UTL_DBWS - Consuming Web Services in Oracle 10g / 在 10g 中使用 UTL_DBWS 包访问 Web Service
    http://www.oracle-base.com/articles/10g/utl_dbws10g.php

[4] Oracle Containers for J2EE, OC4J
    http://www.oracle.com/technology/tech/java/oc4j

[5] Oracle Application Server
    http://en.wikipedia.org/wiki/Oracle_Application_Server

[6] Web container
    http://en.wikipedia.org/wiki/Web_container

[7] Enterprise JavaBean
    http://en.wikipedia.org/wiki/Enterprise_JavaBean

[8] Java Message Service
    http://en.wikipedia.org/wiki/Java_Message_Service
   
[9] Oracle Application Server 10g Release 3 (10.1.3.1.0) Documentation Library
    http://download.oracle.com/docs/cd/B31017_01/index.htm  
   
[10] Oracle Application Server Web Services Developer's Guide
     http://download.oracle.com/docs/cd/B31017_01/web.1013/b28974/toc.htm    


问题
=================================================================================
[1] %ORACLE_HOME%\webservices\lib\WebServicesAssembler.jar 的用法?config.xml 的规则

[2] %ORACLE_HOME%\j2ee\home\admin.jar 的用法

[3] jndi、UDDI ?

[4] 为什么 OC4J 管理界面\Web 服务里看不到新增的服务?

[5] 如何修改 OC4J 管理界面的语言为英语?

北京2012年地铁规划

| No Comments | No TrackBacks

Beijing.Sub.2012.png

SAP 中设备管理有两个概念:功能位置(Functional Locations)和设备。

功能位置指设备安装的位置,以功能为原则进行分类(例如按实际位置、作业标准、功能区域划分)。例如"变电站"是一个功能位置,"变电站"下有"变压器"、"母线段"等子功能位置。

设备则是指具体的物理设备。例如"主变压器"、"架空线路"等,"主变压器"还可以有"主变套管"等子设备。

功能位置和设备的关系是:
* 设备可以在功能位置上安装、拆卸和修理,并可存放在库存里面
* 一个功能位置安装有一个或多个设备
* 设备一次只能被安装在唯一的功能位置
* 当一个设备成为另一个设备的子设备之后,它的功能位置将自动与母设备保持一致
* 功能位置和设备共同构成一个树形结构

功能位置和设备都具有技术参数。技术参数就是功能位置和设备的详细属性,不同功能位置和设备的技术参数的个数、含义都是不同的。

SAP 生产系统中,功能位置、设备、以及两者的技术参数,就是 EIP 台帐的数据来源。

参考
[1] SAP EAM 的设备管理及示范
    http://www.amteam.org/k/EAM/2005-6/497423.html

[2] 高级设备管理之功能位置主数据
    http://dev.kingdee.com/pages/sapguru/blog/archive/2008/11/05/328963.aspx

[3] SAP 模块中文解释
    http://mhy119.itpub.net/post/364/53516

[4] 关于SAP设备主数据安装功能位置的总结
    http://blog.e-works.net.cn/66859/archive/2009/03/06/31899.html

Web service 入门

| No Comments | No TrackBacks

Web service
=================================================================================
  * 目的是支持跨网络的异构系统间的相互操作
  * Web Service 分为两大阵营:Big Web Services v.s. RESTful Web Services
  * Big Web Services 使用遵从 SOAP 协议的 XML 交换信息,服务方要提供 WSDL,一般大型系统使用
  * RESTful Web Services,不使用 SOAP 协议,而通过 HTTP 协议。因此也无需 WSDL 和 XML。
  * SOAP、UDDI 都是 WS-I 组织制定的标准。这些标准的集合被称为 WS-I Basic Profile。

  使用形式:有三种
  * RPC Web services
    ! RPC = Remote procedure calls,以远程调用接口的形式提供 Web Service。
    ! WSDL 的作用是定义服务支持的操作(operation)
    ! 缺点是与开发语言不够独立,已经被剔除出 WS-I Basic Profile。
  * SOA: Service-oriented architecture
    ! 异构系统间的通信单元是消息(Message),而非操作(Operation)。
    ! 因此称为消息导向的服务("message-oriented" services)
    ! 松耦合
    ! 在 SOA 中,WSDL 的作用就像通信双方的一份合同
  * Representational state transfer
    ! 使用简单的协议,简单的操作(例如 GET, POST, PUT, DELETE for HTTP)
    ! 交互时可通过 SOAP XML、或 SOAP 对象抽象、或根本不用 SOAP

  * 异同
    ! 相同点:都用 WSDL 描述服务交互方式。
    ! 不同点:交互时交换的信息不同,依次为:操作、消息、有状态的对象

  和 Web Service 作用类似的架构
    * RMI
    * CORBA
    * DCOM

 

SOAP
=================================================================================
  一般概念
  * Simple Object Access Protocol
  * 交换结构化信息的协议
  * 基于 XML
  * 使用应用层协议,例如 RPC、HTTP
 
  用法:
  * SOAP 消息发送到 Web service,其中包含服务需要的参数
  * Web service 后台处理
  * 结果以 XML 形式返回

  SOAP architecture 的层次
  * message format。一般是 XML
  * message exchange patterns (MEP)
  * underlying transport protocol bindings。传输层:一般用 Internet application layer protocol(例如 HTTP)
  * message processing models
  * protocol extensibility

  * endpoint 端点,即交互的接口点。对 SOA 来说是 Message,对 REST 来说是从程序代码中内省(introspection,我理解是自动生成)出

来的 WSDL 和 接口 API
  * enveloping 封装

 

SOA
=================================================================================
  两种功能
  * 系统开发:
    ! 使系统功能成为服务(隐藏下层实现)
    ! 从而使服务松耦合
    ! 从何适应变化(例如使流程易于改变。重新组织服务即改变流程。)
  * 集成:异构系统数据交换

  两种交互类型:
  * 交换数据
  * 协调行为(Activity)

  SOA 开发的边际成本
  * The great promise of SOA suggests that the marginal cost of creating the n-th application is zero, as all of the software

required already exists to satisfy the requirements of other applications.
 
  Web Service 用于实现 SOA
  * service provider creates a Web service
  * UDDI 是服务代理,Web service 注册到 UDDI 后,用户就知道有哪些服务被提供了

  Service contract 包含的内容
  * Service Operations - Methods, actions etc. Must be defined in terms of what part of the functionality it provides.
  * Invocation - Indicates the invocation means of the service. This includes the URL, interface, etc.

 

WSDL
=================================================================================
  一般概念
  * pronounced 'wiz-dol'
  * 基于 XML
  * 用于描述 Web Service

  * 抽象层:Messages、Port types
  * 实现层:Port、Binding

  * Message: are abstract descriptions of the data being exchanged
  * Port types: are abstract collections of supported operations.
  * Port: is defined by associating a network address with a reusable binding
  * Binding: concrete protocol and data format specifications for a particular port type

 

解析中山 SAP 巡检接口的 WSDL
=================================================================================
从 WSDL 中读取的信息:

Service
  service name:ZS_XJ

Port
  port name:ConfigPort_Document
  对应的 binding:ConfigBinding

Binding
  binding name:ConfigBinding
  transport:协议为 SOAP
 
  operation
    operation name:hello
    input:
    output:

Port Type
  Operation
  input message 的 Schame
  output message 的 Schame


WSDL 应该包含的信息

<wsdl:definitions>
  <wsdl:types>...</wsdl:types>
  <wsdl:message>...<wsdl:message/>
  <wsdl:portType>...</wsdl:portType>
  <wsdl:binding>...</wsdl:binding>
  <wsdl:service>...<wsdl:service>
<wsdl:definitions>

 

首先是:http://10.151.33.42:50100/ZS_XJ/Config?wsdl
* 是个 XML 文档
* 第一句为 XML 声明
* wsdl:definitions 说了命名空间
* wsdl:import 引用了另一个 XML:http://10.151.33.42:50100/ZS_XJ/Config/bindings?wsdl。用于描述 bindings
* wsdl:service 描述了一个 Service,包括 Service 的名字和 port


<?xml version="1.0" encoding="UTF-8" ?>

<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" name="ZS_XJWsd" targetNamespace="urn:ZS_XJWsd"

xmlns:bns0="urn:ZS_XJWsd/Config/document" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">

<wsdl:import location="http://10.151.33.42:50100/ZS_XJ/Config/bindings?wsdl&style=document"

namespace="urn:ZS_XJWsd/Config/document" />

<wsdl:service name="ZS_XJ">
  <wsdl:port name="ConfigPort_Document" binding="bns0:ConfigBinding">
    <soap:address location="http://10.151.33.42:50100/ZS_XJ/Config?style=document" />
  </wsdl:port>
</wsdl:service>
 
</wsdl:definitions>


之后是:http://10.151.33.42:50100/ZS_XJ/Config/bindings?wsdl
* 同样是个 XML 文档,本文档描述 bindings
* 引用了 http://10.151.33.42:50100/ZS_XJ/Config/porttypes?wsdl&style=document 用于描述 port type

<?xml version="1.0" encoding="UTF-8" ?>

<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" targetNamespace="urn:ZS_XJWsd/Config/document"

xmlns:prt0="urn:ZS_XJWsd/ZS_XJVi/document" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">

<wsdl:import location="http://10.151.33.42:50100/ZS_XJ/Config/porttypes?wsdl&style=document"

namespace="urn:ZS_XJWsd/ZS_XJVi/document" />

<wsdl:binding name="ConfigBinding" type="prt0:ZS_XJVi_Document">
  <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
  <wsdl:operation name="hello">
    <soap:operation soapAction="" />
      <wsdl:input>
        <soap:body use="literal" parts="parameters" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
      </wsdl:output>
  </wsdl:operation>
</wsdl:binding>

</wsdl:definitions>


最后是:http://10.151.33.42:50100/ZS_XJ/Config/porttypes?wsdl
* 还是个 XML 文档,本文档描述 port type
* types 好像是个声明,其中可能声明了两个 Schema,这两个 Schema 在 portType 里引用了
  ! hello
  ! helloResponse
* 两个 Message
  ! 名称分别为 helloIn_doc 和 helloOut_doc
  ! 内容分别为 hello 和 helloResponse
* 一个 portType,其中包括:
  ! operation
  ! input message
  ! output message


<?xml version="1.0" encoding="UTF-8" ?>

  <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:ns0="urn:ZS_XJVi"  

targetNamespace="urn:ZS_XJWsd/ZS_XJVi/document" xmlns:tns="urn:ZS_XJWsd/ZS_XJVi/document">

  <wsdl:types>

    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:ZS_XJVi" xmlns:tns="urn:ZS_XJVi"

elementFormDefault="qualified">

      <xs:element name="hello">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="name" type="xs:string" nillable="true" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>

      <xs:element name="helloResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Response" type="xs:string" nillable="true" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:schema>

  </wsdl:types>

  <wsdl:message name="helloIn_doc">
    <wsdl:part name="parameters" element="ns0:hello" />
  </wsdl:message>

  <wsdl:message name="helloOut_doc">
    <wsdl:part name="parameters" element="ns0:helloResponse" />
  </wsdl:message>

  <wsdl:portType name="ZS_XJVi_Document">
    <wsdl:operation name="hello">
      <wsdl:input message="tns:helloIn_doc" />
      <wsdl:output message="tns:helloOut_doc" />
    </wsdl:operation>
  </wsdl:portType>

</wsdl:definitions>

 


根据 WSDL 的定义,Pervasive 发送的请求为:

<?xml version="1.0" encoding="UTF-8" ?>
<wsreq:Request xmlns:wsreq="http://www.pervasive.com/schemas/gen/wsrequest.xsd" xmlns:ns0="urn:ZS_XJVi">
  <wsreq:Parameter>
    <ns0:hello>
      <ns0:name>doPe</ns0:name>
    </ns0:hello>
  </wsreq:Parameter>
</wsreq:Request>

其中 4-6 为 WSDL 要求的内容;
其余为 Pervasive 的要求。第二行 xmlns:ns0="urn:ZS_XJVi" 是根据 WSDL 的定义添加的 namespace

 

参考
=================================================================================
[1] Web service
    http://en.wikipedia.org/wiki/Web_service
[2] SOAP
    http://en.wikipedia.org/wiki/SOAP
[3] WSDL,Web Services Description Language
    http://en.wikipedia.org/wiki/Web_Services_Description_Language
[4] Web Services Interoperability Organization (WS-I)
    http://en.wikipedia.org/wiki/WS-I
[5] UDDI Universal Description Discovery and Integration
    http://en.wikipedia.org/wiki/UDDI
[6] SOA,Service-oriented architecture
    http://en.wikipedia.org/wiki/Service_Oriented_Architecture
[]  使用 WSDL. WSDL 包含的信息
    http://msdn.microsoft.com/zh-cn/library/ms175476.aspx


问题
=================================================================================
[1] Pervasive 如何从 WSDL 里自动生成 request XML?

GRANT

| No Comments | No TrackBacks

词汇:
* system privileges、role、object privileges 统称"权限",分别称为"系统权限"、"角色"、"对象权限"。
* grantee、grantor 分别称为"被授权者"、"授权者"
* creater、owner 分别称为"创建者"、"拥有者"

 

GRANT 语句的作用
* 把 system privileges 授给 user、role、PUBLIC
* 把 role 授给 user、role
* 把某个数据库对象的 object privileges 授给 users、roles、PUBLIC

 

GRANT 语句之外的授权方法:
* oracle 预定义的 PL/SQL packages、Java packages 内包含了很多授权工作
* 初始化参数 OS_ROLES 供操作系统给用户授权。采用 OS_ROLES 授权,就无法使用 GRANT 语句授权。

 

授权条件:

* 授权 system privilege 时:
  * 授权者必须拥有对应的 system privilege 且有 ADMIN OPTION
  * 或授权者有 GRANT ANY PRIVILEGE 系统权限。

* 授权 role 时
  * 授权者必须拥有对应的 role 且有 ADMIN OPTION
  * 或授权者有 GRANT ANY ROLE 系统权限
  * 或授权者是这个 role 的创建者

* 授权 object privilege 时
  * 授权者必须是 object 的拥有者
  * 或 object 的拥有者给予授权者对应的 object privilege 且有 GRANT OPTION
  * 或授权者有 GRANT ANY OBJECT PRIVILEGE 系统权限

 

WITH ADMIN OPTION 和 WITH GRANT OPTION 和 WITH HIERARCHY OPTION
* GRANT system privileges 或 role 可以加 WITH ADMIN OPTION;
* GRANT object privilege 可以加 WITH GRANT OPTION;

WITH ADMIN OPTION: grantee can
* Grant the role to another user or role, unless the role is a GLOBAL role
* Revoke the role from another user or role
* Alter the role to change the authorization needed to access it
* Drop the role
* If you grant a system privilege or role to a user without specifying WITH ADMIN OPTION, and then subsequently grant the

privilege or role to the user WITH ADMIN OPTION, then the user has the ADMIN OPTION on the privilege or role.
* To revoke the ADMIN OPTION on a system privilege or role from a user, you must revoke the privilege or role from the user altogether and then grant the privilege or role to the user without the ADMIN OPTION.

WITH GRANT OPTION:
* Specify WITH GRANT OPTION to enable the grantee to grant the object privileges to other users and roles.
* You can specify WITH GRANT OPTION only when granting to a user or to PUBLIC, not when granting to a role.

 

dba_sys_privs 和 dba_role_privs 和 dba_tab_privs 和 DBA_COL_PRIVS
* DBA_SYS_PRIVS describes system privileges granted to users and roles
* DBA_ROLE_PRIVS describes the roles granted to all users and roles in the database.
* DBA_TAB_PRIVS describes all object grants in the database.

 

PUBLIC 的含义
* 表示所有用户
* 授权给 PUBLIC 后,所有用户都有此权限
* 授权给 PUBLIC 后,3 个视图中增加了 PUBLIC 的权限,而不是加给每个用户

 

参考
[1] Oracle Database SQL Reference \ GRANT 语句
http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/statements_9013.htm

[2] Oracle Database Reference \ DBA_SYS_PRIVS
http://download.oracle.com/docs/cd/B19306_01/server.102/b14237/statviews_4143.htm#i1627521

[3] Oracle Database Reference \ DBA_ROLE_PRIVS
http://download.oracle.com/docs/cd/B19306_01/server.102/b14237/statviews_4064.htm#i1625775

[4] Oracle Database Reference \ DBA_TAB_PRIVS
http://download.oracle.com/docs/cd/B19306_01/server.102/b14237/statviews_4151.htm#i1627646

[5] Oracle Database Reference \ DBA_USERS
http://download.oracle.com/docs/cd/B19306_01/server.102/b14237/statviews_4174.htm#i1628672

[6] Oracle Database Reference \ DBA_ROLES
http://download.oracle.com/docs/cd/B19306_01/server.102/b14237/statviews_4065.htm#sthref1798

 

问题
[1] role 是什么
[2] PUBLIC 是什么
[3] local, global, external 是什么

 

附录:

system privileges 列表:
http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/statements_9013.htm#BABEFFEE

oracle 预定义 role 列表:
http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/statements_9013.htm#g2199949

各种数据库对象可用的 object privileges:
http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/statements_9013.htm#BGEJEBCJ

各种数据库对象 object privileges 的含义:
http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/statements_9013.htm#BGEJEBCJ

About this Archive

This page is an archive of entries from March 2009 listed from newest to oldest.

November 2008 is the previous archive.

April 2009 is the next archive.

Find recent content on the main index or look in the archives to find all content.