Frmwebutil.jar Question w/ 10g (9.0.4)
All over the Oracle documentation w/ Dev Suite and Webutil configurations it refers to frmwebutil.jar and sometimes f90webutil.jar.
My question is, are we to use both files in various places w/ 10g (version 9.0.4) or use one or the other exclusively?
If we are to use f90webutil.jar then I assume every reference directing us to frmwebutil.jar, we replace w/ f90webutil.jar, including signing the jar files adding to registry, .cfg files, etc...correct?
thank you.
Hello,
using one of them is enough,Oracle Developer Suite 10g Release 2 (10.1.2) uses frmwebutil.jar. and the earlier release uses dev suite f90webutil.jar
I think in your case you can use frmwebutil.jar alone.
Regards
Mohan
Similar Messages
-
How to install admin_client.jar on ias 10g R2
I have successfully run admin_client.jar on 10g R3 for auto redeploy purpose.
Now, the machine is 10g R2 which dont have admin_client.jar
I have downloaded admin_client package on
http://download.oracle.com/otn/java/oc4j/101310/oc4j_admin_client_101310.zip
Tried to replace all the jar libraries on 10g R2 with jar libraries on this package.
But execution returns nothing. Just nothing.
Anything wrong??
RegardsI thought it was solved. It is not.
I ran this
C:\oracle\oc4j_admin_client_101310\j2ee\home>java -Djava.util.logging.config.fil
e=logging.properties -jar admin_client.jar deployer:oc4j:opmn//localhost:6003
/test_instance ias_user ias_pass -validateURI
SEVERE: Oc4jDeploymentFactory.getDeploymentManager For input string: "6003/test_
instance"java.lang.NumberFormatException: For input string: "6003/test_instance"
at java.lang.NumberFormatException.forInputString(NumberFormatException.
java:48)
at java.lang.Integer.parseInt(Integer.java:477)
at java.lang.Integer.parseInt(Integer.java:518)
at oracle.oc4j.admin.jmx.client.Oc4jDomainFactory.getDomainFromDeployerU
rl(Oc4jDomainFactory.java:283)
at oracle.oc4j.admin.deploy.spi.factories.Oc4jDeploymentFactory.getDeplo
ymentManager(Oc4jDeploymentFactory.java:127)
at javax.enterprise.deploy.shared.factories.DeploymentFactoryManager.get
DeploymentManager(DeploymentFactoryManager.java:112)
at oracle.oc4j.admin.deploy.api.J2EEDeploymentManager.validateURI(J2EEDe
ploymentManager.java:911)
at oracle.oc4j.admin.deploy.cmdline.ValidateURICommand.execute(ValidateU
RICommand.java:61)
at oracle.oc4j.admin.deploy.cmdline.Oc4jAdminCmdline.executeCommand(Oc4j
AdminCmdline.java:96)
at oracle.oc4j.admin.deploy.cmdline.Oc4jAdminCmdline.main(Oc4jAdminCmdli
ne.java:73)
Failed at "Could not get DeploymentManager".
This is typically the result of an invalid deployer URI format being supplied, t
he target server not being in a started state or incorrect authentication detail
s being supplied.
More information is available by enabling logging -- please see the Oracle Conta
iners for J2EE Configuration and Administration Guide for details.
Valid connection_uris are:
1. To target all OC4J instances that belongs to an OC4J group in an Oracle Appli
cation Server Cluster:
deployer:cluster:[ormis:]opmn://opmnHost[:opmnPort]/oc4jGroupName
2. To target a specific OC4J instance within a cluster:
deployer:oc4j:[ormis:]opmn://opmnHost[:opmnPort]/oc4jInstanceName
deployer:oc4j:[ormis:]opmn://opmnHost[:opmnPort]/asInstanceName/oc4jInstanceN
ame
3. To target a standalone OC4J server:
deployer:oc4j:oc4jHost:rmiPort
deployer:oc4j:ormis:oc4jHost:ormisPort
opmnPort is the OPMN request port specified in opmn.xml.
If omitted, defaults to 6003.
Anyone help? -
i have really really tried to answer this question.
i searched the forums. i read the api.
so please, haha, please help.
i know jar questions dont typically get a warm reception.
I have a folder containing a couple folders and one jar file.
Images/
Data/
MyApp.jar
i cannot access the images in the Images folder.
im getting this error:
Resource not found: /Images/ToolBar/pic.gif
Uncaught error fetching image:
java.lang.NullPointerException
at sun.awt.image.URLImageSource.getConnection(URLImageSou
9)
at sun.awt.image.URLImageSource.getDecoder(URLImageSource
at sun.awt.image.InputStreamImageSource.doFetch(InputStre
rce.java:248)
at sun.awt.image.ImageFetcher.fetchloop(ImageFetcher.java
at sun.awt.image.ImageFetcher.run(ImageFetcher.java:136)
this is the code i use to load images:
String imgLocation = "Images/ToolBar/" + imageName + ".gif";
URL imageURL = MyClass.class.getResource(imgLocation);i also tried it with a "/" before "Images" in the code.
I tried adding the folder to the manifests classpath.
I also tried knocking on wood and counting sheep.the way my computer is configured i never use "-cp . " when
running a java program.
it usually uses the present directory as the class path.
but i have looked into that (maybe im doing it wrong).
im running "java -jar MyApp.jar" from the command-line (in XP)
from the directory that holds the .jar and the Images/ folder.
i tried "java -cp . -jar..."
i also tried putting the class path in the manifest file but every\ytime
i did that i got "no class in main" error.
if C:\My\Program contains MyApp.jar and directory Images/
Class-Path: C:\My\Program\Images
didnt work
Class-Path: C:\My\Program ; C:\My\Program\Images
didnt work
i tried the / both directions
ive tried countless permutations of this.getclassloader / getclass blah blah also.
every thread gives the class loader as the answer but so far
nothing has worked.
its amazing how many times this question has been asked and
there usually isnt an answer.
im depressed, haha. -
Adf faces jar for jdeveloper 10g
Hi,
i m using jdeveloper 10, i want to use adf (af componant) in my jsf page, so i need adf jar, but i m not able to download them from
"How To Use ADF Faces With JDeveloper 10g" kindly help me how i can download these jar, so that i can use them in my codeTrinidad is a JavaServer Faces component library that is a subproject of Apache MyFaces. (It was formerly known as ADF Faces.)
Refer http://wiki.apache.org/myfaces/from_ADF_to_Trinidad -
I'm sure this is an easy question, but how do you access subdirectories in your applet's jar file?
For instance the contents of MyApplet.jar jar would be:
* META-INF
* images
* net
Say the main class is MyApplet.class in net/mydomain/myproject
How in the main class would I get at images/MyImage.jpg?
Obviously I did not get this code to work:
ImageIcon upIcon = new ImageIcon("images/MyImage.jpg");
Thanks alot!Actually now I am using:
ImageIcon upIcon = new ImageIcon(MyApplet.class.getResource("/images/MyImage.jpg"));
This way the 'absolute' resource is found (becuase the resource name starts with a '/').
This seems to be the best way to do it. -
i need some information on what types of questions come in 10g which a 10g person should be knowing.
Any web-site or documentation will be helpful.
I hope, my question is clear. Please help, in solving the doubt.
regards.Hi,
As Frank just told you.
Here you have the link to get every doc. about AS
http://www.oracle.com/technology/documentation/appserver.html
I hope U have enough on this information otherwise let me know.
Cheers,
Hamdy -
Hello,
I hate to ask such a simple question, but I'd like to get confirmation from people who know.
It is possible to package non-EJBs into a deployed JAR containing EJBs, isn't it? I have heard that you cannot mix a non-EJB class into a JAR that contains EJBs, but my interpretation of the literature I've found about packaging EJBs seems to indicate otherwise.
Basically, it looks like you would want to (or need to in some cases) package any class that an EJB depends upon through inheritance or through another association (e.g. a custom user Exception class that and EJB might throw) into the same JAR file.
Please reply and set me straight on this. Thanks in advance.
Jeff1. You can include any classes in your EJB jar file, and it is widely used. You can also include other files (e.g. properties) and access them through the class loader (as resources).
2. If you use some libraries, you may reference them with Class-Path: element in your manifest file. It is not necessary to unpack the library and include its classes in your jar file. (About "Class-Path" -- look page about manifest in the java tutorial (in the JAR files trail)).
3. Your JAR can contain no classes, just a deployment descriptor, if your classes are somewhere and you have referenced them with "Class-Path". ;) -
Loading SOAP.jar into a 10g database
Hello,
We recently moved from a 9i Oracle DB to a 10g.
On the Oracle 9i we used the guidelines mentioned in http://www.oracle.com/technology/tech/java/jsp/pdf/JavaDB_Use_Case.pdf to set up the communication with a secure webservice.
However after having switched to the new database these same JAR files no longer seem to be valid. Well actually only the SOAP.jar will no longer load into the database. It complains about a missing classes (OracleSOAPHTTPConnection could not be resolved) - the "funny" thing however is that exactly that class is be defined in SOAP.jar if you open up the jar file.
Can anyone give me hints about what might be wrong - Obviously I am missing something quite fundamental - I am at a loss to what it could be though.
Kind regards
BoSee the Callout users guide http://www.oracle.com/technology/sample_code/tech/java/jsp/callout_users_guide.htm.
Kuassi -
Ojdbc14.jar connect to 10g so slow with JRE1.5.0_05
Our guests complained the speed is so slow that they can not stand up with this...
So I run the tests base on JRE1.5.0_05 and ojdbc14.jar and Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
String url = "jdbc:oracle:thin:@//host:1521/orcl";
Date now = new Date();
Connection conn = DriverManager.getConnection(url, "user",
"password");
System.out.println(System.currentTimeMillis() - now.getTime());
conn.setAutoCommit(false);
Statement stmt = conn.createStatement();
ResultSet rset = stmt
.executeQuery("select BANNER from SYS.V_$VERSION");
while (rset.next()) {
System.out.println(rset.getString(1));
stmt.close();
System.out.println("Ok.");
} catch (Exception ex) {
ex.printStackTrace();
The output is :
4875
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
PL/SQL Release 10.2.0.1.0 - Production
CORE 10.2.0.1.0 Production
TNS for 32-bit Windows: Version 10.2.0.1.0 - Production
NLSRTL Version 10.2.0.1.0 - Production
Ok.
the statement Connection conn = DriverManager.getConnection(url, "user", "password") execution time is 4875 milliseconds!!!!!
so i switched to 9i the output is:
0
Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
PL/SQL Release 9.2.0.1.0 - Production
CORE 9.2.0.1.0 Production
TNS for 32-bit Windows: Version 9.2.0.1.0 - Production
NLSRTL Version 9.2.0.1.0 - Production
Ok.
I change the JDK version to 1.4 or 1.6 the execution time is also 0.
I walk through the internet and finally found the solution:
ProxySelector.setDefault(null);
But i am still confused when it come to the same environment the same code to connect to the 9i,10g, the getConnection() method execution time is so different without the statement ProxySelector.setDefault(null). so I suspect that this is an issue to 10g not the JDK1.5.x.
Edited by: user12084131 on 2010-9-20 上午1:46
Edited by: user12084131 on 2010-9-20 上午1:47Thanks for the reply,
One correction to the above <Corrected now in my original post>
Its connecting to " com.bea:ServerRuntime=managed03,Name=managed03,Type=JRockitRuntime"
Tried with previous version again, it works perfect. But i still have issue with new JRE version.
Regards,
Rana
Edited by: user13387204 on 02-Oct-2010 19:01 -
I just completed my first ever app using the Netbeans IDE 3.6 w / sdk 1.4.2_04
My GUI app has a main class name of : "AddRFSwitchMain" residing in a package named "AddRFSwitchPac" all in a project folder named "OW_A"
My app requires the resources of an external multi -container "OneWireAPI" jar file.
My app also makes use of the timer bean that came already residing in the netbeans IDE bean palette.
All of the GUI code was constructed by using the GUI form builder tool including the timer bean56.
Question:
(1) To run my app outside of the IDE, I created a "jar file recipe" named "OWProject" This OWProject recipe then becomes my "compiled jar" named "ProjectOW" and runs fine when mounted "inside" the IDE . It looks to me like my "ProjectOW.jar" only makes "file location references" to the needed external "OneWireAPI.jar" I thought that my jar file would contain the "actual files" of the needed "external files" inside my jar .... is this not true? ..... as it stands, to run my app as a stand alone on another computer , with an installed "jre" , I would need to also include the "OneWireAPI".jar also to be installed on a computer running my app.
(other questions to follow this one)>
OK ... so ... "third party software" is only made
reference to its "location" as spec'd in my app's
manifest.
.... and I do this in the " Class-Path: " of my app's
manifest.Yes. (see below)
>
.... and I can include the "external jar" in my app's
package for transport to other computers as one Jar.I'm not sure if that would work. (a jar within a jar). ??
How about something like this:
\Package Folder\
- MyApp.jar (the main jar)
\bin\ (folder)
- Other Jar needed for execution of the programThen in your main jar's manifest, include "bin/OtherJar.jar".
So the second jar will be packaged separately, away in a folder that clearly states what it contains.
All the user would have to do is to execute the main jar. this is the only file they would have to see, from an
execution perspective.
Question:
(2) As my app now stands in the netbeans IDE , my app
"imports" these required external files from thier
respective locations "mounted" in my IDE. ... When I
move these external files to my "Package folder" ..I
must now go back into my app and change any location
reference (import statements, etc) to reflect this
move ... correct?I don't think so: as long as your classpath (got from the manifest of the jar) includes the new locations of
these external files.
I think NetBeans works like this: a 'mounted' directory or file is included in the classpath.
ie. when you click 'Compile', NetBeans passes a command to javac, specifying a few different parameters,
and including in the classpath all the mounted files and directories (looks something like:
"javac -classpath .;C:\Programming\Java;C:\Java\ThirdParty\OneWire; etc.", where those directories
specified in the '-classpath' parameter are the mounted directories)
So when you move your app out of NetBeans, all you need to do is to ensure that the required files are
included in the classpath. If you're still working on your app in an editor, you'll need to tell the editor what to
include in the classpath (that's how IDEs make your life easier*).
If you are packaging your app as a jar file, you will need to specify (in relative locations) where your
required files will be located.
Your actual code should not need to be modified.
Does this make sense?
:) lutha
* but, as you can see, they should perhaps only be used when the programmer already understands concepts like classpath! ;-) This is the view of many programmers here on these forums. -
Hi,
I've just installed 10g DB Release 2 (for Linux) and now I want to explore the Decision Trees feature of Data Mining (as in the presentation of Robert A. Habertroh in OTN). However when I use Data Miner connect to this new DB, it said "Cannot connect to ODM server". There is no directory odm under my $ORACLE_HOME.
BTW: I download the from odmapi.jar http://www.oracle.com/technology/products/bi/odm/odminer.html, but now it said there is odmapi.jar for 10.1.0.4.0 only. If I use this Data Miner to 10gR1 is OK.Hi,
I've just installed 10g DB Release 2 (for Linux)
and now I want to explore the Decision Trees feature
of Data Mining (as in the presentation of Robert A.
Habertroh in OTN). However when I use Data Miner
connect to this new DB, it said "Cannot connect to
ODM server". There is no directory odm under my
$ORACLE_HOME.
BTW: I download the from odmapi.jar
http://www.oracle.com/technology/products/bi/odm/odmi
ner.html, but now it said there is odmapi.jar for
10.1.0.4.0 only. If I use this Data Miner to 10gR1 is
OK.Hi Mark,
Thanks for the promptly reply.
I want to test the new features of ODM 10.2 as a "proof-of-concept" project. So could you inform when this will be available in OTN ?
Thx -
Hi, I have a few little questions.
Lets say i have a jar file called powermachine.jar.
if i want to use the classes inside of the jar(import) i need to set the CLASSPATH varible to the jar, correct?
but what about if i distribute an application that uses classes from the jar? do i have to distribute the powermachine.jar with my application? If so how would i set up the prog so it can find the jar without changing my application code?
thanks for any helpHi, I have a few little questions.
Lets say i have a jar file called powermachine.jar.
if i want to use the classes inside of the jar(import)
i need to set the CLASSPATH varible to the jar,
correct?That's right.
>
but what about if i distribute an application that
uses classes from the jar? do i have to distribute the
powermachine.jar with my application?Yes.
If so how would
i set up the prog so it can find the jar without
changing my application code?
Adding powermachine.jar to the CLASSPATH you sets for running your application.
thanks for any helpYou're wellcome. -
Java Development Tools - jar Question
I have developed a application which i would like to be able to execute from a jar file (i.e. java -jar ... ).
Anyway my gui requires some image files which are in the archive. Its just that when i try to run the application from the archive, it doesnt look within itself for the images and therefore cant find (and wont display) the images unless they are present in the same directory as the archive.
Anyone have any ideas as to how i can get the archive to looke within itself for the images. thanks.Here is a snippet from one of my programs,
I took a while to work out how to do it from a jar.
Andrew.
ImageIcon icon = null;
URL iconURL = null;
iconURL = ClassLoader.getSystemResource("comp202/fsa/vuw-logo-short.gif");
if (iconURL != null) {
icon = new ImageIcon(iconURL,"VUW Logo"); -
Hi all,
What does anyone know or have an opinion regarding 10g's ability with Virtual Private Databases/Row level security and Unix based servers providing client-server forms and reports services to browser based windows and unix clients?
My organisation has been stuck in Forms 6 land because of heavy limitations of Forms 9's ability to handle row level security in this situation and I was curious to know if anyone has upgraded to 10g and resolved any issues in that regards.
Thanks all.This is another article:
TECHNOLOGY: Security
Keeping Information Private with VPD
By Arup Nanda
Oracle's row-level security gives users their own virtual private databases.
Ensuring appropriate information privacy is a pressing concern for many businesses today, given privacy legislation such as the United States' HIPAA (Health Insurance Portability and Accountability Act), Gramm-Leach-Bliley Act, Sarbanes-Oxley Act, and the EU's Safe Harbour Law. Other privacy mandates, such as Visa's Cardholder Information Security Program (CISP), also require businesses to ensure that access to information is tightly controlled.
Oracle has always included the ability to grant (or deny) users access to database objects, but these privileges are defined at the object levelfor an entire table, not for specific rows in that table. Although that approach is sufficient for many applications, any application touching on financial, health, or other kinds of personal information usually requires more-discrete controls over access and authorization.
Oracle's row-level security (RLS) feature, introduced in Oracle8i, provides fine-grained access controlfine-grained means at the individual row level. Rather than opening up an entire table to any individual user who has any privileges on the table, row-level security restricts access to specific rows in a table. The result is that any individual user sees a completely different set of dataonly the data that person is authorized to seeso the overall capabilities are sometimes referred to as Oracle's virtual private database, or VPD, feature.
Using Oracle's VPD capabilities not only ensures that companies can build secure databases to adhere to privacy policies but also provides a more manageable approach to application development, because although the VPD-based policies restrict access to the database tables, they can be easily changed when necessary, without requiring modifications to application code.
For example, say a bank's account managers (AMs) provide personal customer support to high-net-worth account holders. AMs use a custom banking application to help them check their customers' balances, deposit or withdraw funds, and decide on loan requirements, for example. At one time, the bank's policy was to allow all AMs to access all account holder information, but that policy was recently changed. Now, AMs are assigned to a particular set of customers, and they need to be able to access information pertaining only to those customers. The policy change needs to be reflected in the application, which currently shows all customer information to each AM, not just information on the customers to whom each particular AM is assigned.
To make the application comply with the new privacy policy, the bank has three choices:
Modify the application code to include a predicate (a WHERE clause) for all SQL statements. This option doesn't ensure privacy policy enforcement outside the application, however, and if there are other changes in the future, the code will once again have to be modified, so this is not a good approach in the long term.
Leave the application intact, creating views with the necessary predicates and creating synonyms with the same name as the table names for these views. This option is better from the perspective of application changes and security, but it can be difficult to administer, because of the potentially large number of views to track and manage.
Create a VPD for each of the AMs by creating policy functions that generate dynamic predicates, which can then be applied across all objects, regardless of how they are accessed, by setting up policies with the row-level-security built-in package (DBMS_RLS).
This last option offers the best security without administrative overhead and ensures complete privacy of informationall the account managers see a different view of the table, according to their own credentials.
This article shows you how to set up a VPD security model. It goes through the process by using the foregoing bank scenario to create policy functions, define policies, and then test results. (Note that the tables are not completely defined, to keep the example simple.)
Basic Setup for the Example Application
Briefly, here are the basic assumptions about the example bank application:
A BANK schema owns two key tables that make up the applicationa CUSTOMERS table:
Name Null? Type
CUST_ID NOT NULL NUMBER
CUST_NAME NOT NULL VARCHAR2(20)
and an ACCOUNTS table:
Name Null? Type
ACCT_NO NOT NULL NUMBER
CUST_ID NOT NULL NUMBER
BALANCE NUMBER(15,2)
Listing 1 comprises the SQL script for creating and populating these two basic example tables.
User SECMAN (security manager) owns an ACCESS_POLICY table that identifies the AMs and their respective customer accounts:
Name Null? Type
AM_NAME NOT NULL VARCHAR2(20)
CUST_ID NOT NULL NUMBER
ACCESS_TYPE NOT NULL CHAR(1)
The AM_NAME column stores the user ID of the account manager; CUST_ID identifies the customer; and ACCESS_TYPE defines the specific access entitlementS (SELECT), I (INSERT), D (DELETE), or U (UPDATE). Some example records from the ACCESS_POLICY table follow:
AM_NAME CUST_ID ACCESS_TYPE
SCOTT 123 S
SCOTT 123 I
SCOTT 123 D
SCOTT 123 U
SCOTT 456 S
SCOTT 789 S
LARA 456 I
LARA 456 D
LARA 456 U
LARA 456 S
As you can see, SCOTT, the AM for customer 123, has all privilegesS, I, D, and Uas does LARA for customer 456. Also, because SCOTT can confirm account balances for one customer of LARA, he has S privileges on customer 456.
Step 1. Create a Policy Function
The bank's access rules (contained in the ACCESS_POLICY table) must be applied somehow, dynamically, whenever an AM tries to look into customer account information. The first step is to create a policy function that returns the appropriate predicate to be applied to the table. As with the ACCESS_POLICY table, the policy functions are created and controlled by user SECMAN, for security purposes. It's best to keep privacy rules separate from the tables to which they apply.
Let's examine the policy function, get_sel_cust_idshown in Listing 2 in detail:
Accepts exactly two parameters: the schema name (p_schema in varchar2) and the table name (p_table in varchar2)
Returns one value only, a stringreturn varchar2 as l_retstr varchar2(2000);comprising the predicate that will be appended to every query on the table
Uses a cursor routinefor cust_ rec into get the list of values, because each user may have several cust_ids listed in the table
Returns a constructed stringl_retstrto be used as a predicate whenever any user attempts to access the underlying table
The function returns the predicate where cust_id in with the appended list of customer accounts (cust_id), separated by commas, that the user (am_name = USER) is allowed to see.
Note that before entering the loop that builds the list of cust_ids for the user, the code in Listing 2 checks to see if the user is the table owner BANK, in which case the function returns a NULL predicate, as follows:
if (p_schema = user) then
1_retstr := null;
After building this function, you want to make sure it returns the appropriate predicate, by testing some sample data. Connect to the database as SECMAN, and insert some records into the ACCESS_POLICY table, giving SECMAN read privileges on a few sample accounts, as follows:
insert into access_policy values ('SECMAN',123,'S');
insert into access_policy values ('SECMAN',456,'S');
insert into access_policy values ('SECMAN',789,'S');
Now execute the function:
select get_sel_cust_id
('BANK','CUSTOMERS') from dual;
The function returns a string that will be applied as a predicate, as shown in the following sample output:
GET_SEL_CUST_ID('BANK','CUSTOMERS')
CUST_ID IN (123,456,789)
You need to create similar functions for the other types of access. For simplicity's sake, create a single function for all the other access typesUPDATE, DELETE, INSERTas shown in Listing 3. However, note that for a real-world application, each type of access should have its own individual function defined, to ensure appropriate privacy.
The policy function in Listing 3 is nearly identical to the policy function in Listing 2, except that the predicate is further qualified by use of the information from the ACCESS_CONTROL table:
and access_type in ('I', 'U', 'D')
Creating a policy function is just the first step. You now need to ensure that the function will be used, by defining the policy that should control its use in your system.
Step 2. Define a Policy
Policies are defined with the DBMS_RLS package, which is Oracle-supplied. Be aware that the policies themselves are not database objects owned by any user (schema); they are logical constructs. Any user who has the execute privilege on the DBMS_RLS package can modify or drop a policy created by another user. Privileges to DBMS_RLS should be judiciously controlled and granted with caution.
In the following example, user SECMAN is granted execute privileges (by SYS) on the DBMS_RLS package:
grant execute on dbms_rls to secman;
Listing 4 creates a policy named CUST_SEL_POLICY on the table CUSTOMERS of schema BANK. This policy applies the predicate returned by the function GET_SEL_CUST_ID (which is shown in Listing 2) owned by schema SECMAN to all SELECT statements on the table.
Similarly, you place another policy on the table for other access types, as shown in Listing 5. This policy applies to inserts, updates, and deletes in the CUSTOMERS table.
It is almost identical to the SELECT policy, except that this policy includes a check that ensures that the policy will remain compliant even after an update:
update_check => TRUE
Data cannot be added to the table unless it adheres to the policy.
Step 3. Test the Setup
Now that the building blocks are in place, let's see how they work. Connecting as user BANK and issuing a simple select * from customers; query displays the following:
CUST_ID CUST_NAME
123 Jay Kulkarni
456 Wim Patel
These two records are the full contents of the CUSTOMERS table, and both records are shown because BANK owns the table, so the predicate clause is NULLthat is, no predicate is applied. However, when user LARA makes the same query, she sees the following:
select * from customers;
CUST_ID CUST_NAME
456 WIM PATEL
LARA sees only CUST_ID 456, not 123, because that is the row she is authorized to see, as determined by the ACCESS_ POLICY table. Note that the query has no WHERE clause but that the selection from the table is automatically filtered to show only the authorized rows.
If user SCOTT makes the same query, his results are different from the results for LARA: select * from customers;
CUST_ID CUST_NAME
123 Jay Kulkarni
456 Wim Patel
User SCOTT sees both rows, because he is authorized to do so, as shown in the ACCESS_POLICY table. When user LARA issues the query, the policy function get_sel_cust_id returns the predicate where cust_id in (456). Lara's original query select * from customers is rewritten as
select * from
(select * from customers)
where cust_id in (456)
The predicate is automatically appended to the user's original query. The same thing happens when the user updates the table:
SQL> update bank.customers
2 set cust_name = 'PAT TERRY';
1 row updated.
Note that in this example, only one row is updated, even though there are actually two rows in the underlying table. The policy (CUST_IUD_POLICY) appends the predicate where cust_id in (456) to the update statement. Similarly, while the table is being deleted, only the rows for which the user is authorized are deleted.
Attempting to insert a row containing data for which the user is not authorized results in an error message. For example, in this query, LARA is attempting to add a record to the CUSTOMER table for an account not under her purview: Next Steps
READ more about
VPD Oracle9i Supplied PL/SQL Packages and Types Reference
Oracle Privacy Security Auditing
SQL> insert into bank.customers
2 values (789,'KIM PARK');
insert into bank.customers
ERROR at line 1:
ORA-28115: policy with check option
violation
According to the ACCESS_POLICY table, Scott has SELECT privileges on account 789no other privileges for any other AM are listed in the table.
Using policies in conjunction with functions ensures authorized access to specific records of a table. The rules are applied regardless of how the table is accessed, whether through an application or directly through an ad hoc query tool, such as SQL*Plus. Users see only rows for which they have been authorized.
Policies can be applied to multiple tables, and a single policy function can be used by any number of policies. Listing 6 shows a policy on an ACCOUNTS table that uses the get_sel_cust_id function initially created for use with the CUSTOMERS table.
Arup Nanda ([email protected]) is the chief database architect at Proligence Solutions ( Printer View
http://otn.oracle.com/oramag/oracle/04-mar/o24tech_security.html
Joel Pérez
http://otn.oracle.com/experts -
hi all,
I made a Java application in Eclipse;
in Project - Properties - Build Path - Libraries, I added an external jar to be able to connect to a mysql database.
Now I can execute this application perfectly from Eclipse and on the same machine.
But now I need to put this application on another machine, but when I try to execute the application it gives this error message:
$ java WatchDog
Cannot connect to database serverorg.gjt.mm.mysql.Driver
Exception in thread "main" java.lang.NullPointerException
at Query.truncate(Query.java:304)
at WatchDog.<init>(WatchDog.java:18)
at WatchDog.main(WatchDog.java:131)
I also tried to point to the external jar with the -classpath option like this:
$java -cp "/usr/local/bin/WatchDog/mysql-connector-java-5.0.4/mysql-connector-java-5.0.4-bin.jar" WatchDog
Exception in thread "main" java.lang.NoClassDefFoundError: WatchDog
how can I do this??
grtz
Message was edited by:
dfvdfvdfvxfvby setting the classpath like that you removed your own classes from the classpath.
Add the directory where those are to be found to the classpath as well.
And of course ALWAYS use packages for your classes.
Maybe you are looking for
-
Hi, Using the Java coding how can i get the OS language? Please help me Thanks Suresh
-
Creating database (confused!)
hi, it says that when you're creating a database, you have to log into the database as sysdba, and then do create database...but how can you log in to the database when it hasn't even yet been created? I mean, how can you connect as sysdba, because t
-
I just updated my Apple ID to a current email address, it worked on my laptop but my phone is still using the old one and neither password works. I can't download or use anything other than phone calls and texting on my phone now. Help!
-
Hi , I am new to this essbase aplication in my company . How do i create test env (outline , cal scripts , data etc ) from production server with same setting . Both server are already setup. For learning purposes , i want use same data / cal scripts
-
Cannot create Kodak Photo Book with Elements 8
I'm trying to create a Kodak Photo Book with Elements 8. My system gets stuck in an eternal loop at the initial CREATE stage: (Screen 1) CREATE What would you like to create? Photo Book (Screen 2) Order Kodak Photo Book Back to screen 1. Same is true