Avoid users to login into the database thru SQLPlus
I'm trying to use the after logon trigger described below, to avoid users to login into the database thru SQLPlus, user can only connect from from pls help me
If your only concern is preventing users from logging in via SQL*Plus, you could use the PRODUCT_USER_PROFILE table.
However, and this is a big however, this will not prevent users from logging in using any other tool (SQL Developer, SQL Programmer, TOAD, etc) if they know the Oracle user name and password. You can create a login trigger that generates an exception if the program that the client reports is connecting isn't on a list of valid products, but this sort of thing is easily circumvented just by renaming the executable on the client machine.
Fundamentally, if you have given a person an Oracle user name and an Oracle password, whatever privileges are available to the Oracle account are available to that individual. No matter what tool that person uses to connect to the database, they are going to have the same privileges. That's why you ideally want to restrict what users can do to the point that you don't care what tool they're using. Barring that, you can enable auditing and let the users know what they are and are not allowed to do by policy and use the audit logs to ensure compliance.
Justin
Similar Messages
-
Can not login into the database 9i
I use WarehouseBuilder 9i's repository assistant to create new repository on a host.While the database is oracle 9i release 2 , the sysdba's name/password can't login into the database.But if the database is oracle 8.1.7 ,the sysdba's name/password can login.Why?
If the oracle 9i doesn't support WarehouseBuilder 9i ?This is well known bug in OWH 9i.
The thing is:
1. Repository Assistant need to login under SYS and only SYS
2. SYS are allowed to login to Oracle 9i only AS SYSDBA
3. ... but Repository Assistant CANNOT correctly login by "SYS AS SYSDBA"
Solution:
1. Set Oracle 9i init parameter O7_DICTIONARY_ACCESSIBILITY=TRUE and restart database instance. This allow you to login as SYS (without SYSDBA) to Oracle 9i. -
Not able to login into the database on oracle 10g on vista os
Hi,
I have install oracle 10g on vista machine.
I am not able to log in to the database ia have tryied with scott/tiger, system/manager, sys/changeoninstall.
can anyone please tell me what the default username password to 10g version for vista machine.
Oracle version 10g
OS: Vista
Thanks
Amitsqlplus / as sysdba
or
sqlplus /nolog
conn / as sysdba
or
sqlplus '/ as sysdba' -
I have completed installation of Oracle 10g but I could not login into the
Please I have completed installation of Oracle 10g into my laptop but I could not login into the database to create my new tables through SQL*Plus.
I don't know what to type into these text fields. (1) Name, (2)Password and (3) Host.
Please can someone help me urgently
FolaThere are different things here to know about.
Did you also create database while installation ?
If yes then
C:\> set oracle_sid=yoursid
C:\> sqlplus username/password
If not then, please create the database first.
For "I don't know what to type into these text fields. (1) Name, (2)Password and (3) Host."
(1) Name : This is user name.
(2) Password: This is password.
(3) Host: This is oracle net service name configured in tnsnames.ora. Please refer to http://download-uk.oracle.com/docs/cd/B19306_01/network.102/b14212/toc.htm
-aijaz -
Total no. of users logged into the database
Can we find out total number of users logged into the database? I do not have DBA privileges.
If it is not possible by a straight SQL then do I have any other options?
Thanks.You can find the list of all users using the query "Select * from V$Sesssion_connect_info". This requires access to system tables. But this query gives the OS user information and not the database user information.
<BLOCKQUOTE><font size="1" face="Verdana, Arial, Helvetica">quote:</font><HR>Originally posted by Krishnan:
Can we find out total number of users logged into the database? I do not have DBA privileges.
If it is not possible by a straight SQL then do I have any other options?
Thanks.<HR></BLOCKQUOTE>
null -
New users are getting "cntl_error" whenever login into the portal
Dear Experts,
New users are getting "cntl_error" whenever login into the portal. They are accessing .par application. I have read so many threads, but unable to find exact solution.
I have tried in my browser with the user login, then no error. But the user login there end then its giving "cntl_error" error.
Problem with Internet Explore Browser? Any additional setting required for users browser?
Could you please help me, how to resolve this error.
Thanks in Advance.
Regards,
Vijay.Hi Vijay,
Check this thread - "CNTL_ERROR" raised,error key: RFC_ERROR_SYSTEM_FAILURE- Show Team Calendar , this might help you on what you are looking for.
Regards,
Sen -
Unable to login to the database with Oracle login ID from today
I have an Oracle user (jjcdba) through which I login to the database.
From today morning, I am unable to login to the database and I am getting this error.
$=> id
uid=123(jjcdba) gid=3203(jjcdba)
[jjcdba@jjcprd04:/jjc/orasw10/oracle/product/10.2.4]
$=> sqlplus "/as sysdba"
SQL*Plus: Release 10.2.0.4.0 - Production on Tue Oct 5 04:22:31 2010
Copyright (c) 1982, 2007, Oracle. All Rights Reserved.
ERROR:
ORA-01031: insufficient privileges
Enter user-name:Could someone please tell me how to troubleshoot this issue. I need to get into the database urgently!Hi,
jjcdba user should be the member of "dba" group to enjoy the OS authentication otherwise you would need to use the sys password to login to the database. Please make sure that "dba" os group exists and make this user member of this group.
Salman -
Page level validation to prevent duplicate data entry into the database
Hello,
Can anyone please help me out with this issue.
I have a form with two items based on a table. I already have an item level validation to check for null. Now I would like to create a page level validation to check that duplicate data are not entered into the database. I would like to check the database when the user clicks on ‘Create’ button to ensure they are not inserting duplicate record. If data already exist, then show the error message and redirect them to another page. I am using apex 3.2
ThanksHi,
Have you tried writing a PLSQL function to check this?
I haven't tested this specifically, but something like this should work:
1) Create a Page Level Validation
2) Choose PLSQL for the method
3) Choose Function Returning Boolean for the Type
For the validation code, you could do something like this:
DECLARE
v_cnt number;
BEGIN
select count(*)
into v_cnt
from
your_table
where
col1 = :P1_field1 AND
col2 = :P2_field2;
if v_cnt > 0 then return false;
else return true;
end if;
END;If the query returns false, then your error message will be displayed.
Not sure how you would go about redirecting after this page though. Maybe just allow the user to try again with another value (in case they made a mistake) or just press a 'cancel' button to finish trying to create a new record.
Amanda. -
How to Find out who is login into the Portal.
Hi Friends ,
I have one doubt Now I have one Requirement. i.e.
How many members (users) login in to the Portal?
In what time they login into the portal?
How many times hits the iView in Portal?
Who is last login into the portal?
I have find out these details by using these details I will create one Iview.
How to find these details. By using these details I will created one iView. Kindly let me know.
Could you tell me those
1. Is it creating Portal Activity Report iView in Portal?
2. By using WDJ Application we can create one Application. By using this application we can create iView?
Regards
Vijay KalluriHello Vijay,
If you are interested in a 3rd party application with all the stats you need and more, check out Click Stream by Sweetlets. Easy to download and user friendly with many key reports quickly accessible. It also answers some of the questions you had above a whole lot simpler than anything else out there or any other route you had in mind.
In the very near future Click Stream will also have iView recording to monitor iViews, telling which iViews have been clicked, etc. Also, the one you were looking for, "who the last login into the portal", will soon be added.
Click Stream uses the Usermanagement (UME) API to get more information about the user, groups, roles, LDAP attributes etc. and offers you the ability to use such information for filtering within any report.
Click Stream also uses the PCD API to get information about the pages your users are visiting.
Here are some reviews on the SAP EcoHub from people who have used it: http://ecohub.sdn.sap.com/irj/ecohub/solutions/clickstream
Please just let me know if you have any question or if you are open to test drive Click Stream. We will certainly help as best as we can.
Good luck. -
WEBUTIL_PG.WRITE_DATA( ) and uploading documents into the database
When we run our Forms application through Forms Builder, with the user account utilized by our actual users, we're able to upload a file into the database using webutil. This particular database user account is restricted to only the tables and packages it needs access to, granting the full SELECT, INSERT, UPDATE, DELETE to the tables, and then EXECUTE on the packages.
However, when our Developers use their personal database accounts, which essentially have SELECT ANY .. EXECUTE ANY ... etc, this upload process is halted within webutil.pll when it calls the database PACKAGE procedure WEBUTIL_PG.WRITE_DATA( ). It just hangs on that step.
When you look in OEM, during that hang the graph is showing high levels of "Network" activity. Just a solid plateau. We can't figure out why the difference between these accounts has an effect. Does someone see a pattern here that we're missing?
Thanks,
--=Chuck"Still sounds like a permissions issue to me." I know right?
So I logged in as myself. I have DBA privileges in the database. The call to the database package hung for me as well. No error ... just a hung cursor.
As for debugging ... the call to WEBUTIL_PG hangs, when the Forms code gets to that point in the webutil.pll. So we never even get to the database.
Our next step, is to try to recreate the process solely in PL/SQL without webutil.pll, but the code in there is pretty extensive, and teasing out only the pieces we'll need is pretty tricky. -
How to save a fmb in the database thru command prompt?
Hi,
How to save a fmb in the database thru command prompt?
I have around 25 fmb template files which needs to be saved in the database.Every time when we apply the new dump , we need to resave the templates in the database to compile other application related fmb files.Its a time consuming process and Monotonous for me. Is there anyway to save the forms in the database thru batch file, so that just I have to execute the batch file every time.
Expecting your earliest feedback.
Thanks & Regards,
G.S -
[email protected] / [email protected]Hi Frank,
Thanks for your feeback.
I am using forms6i.Basically our application was migrated from 4.5 to 6i two years back. Due to some reasons our technical team members are insisting us to store the template FMB's into the database to do the coding activities at site.
Once in a month we are receiving the live dump for test database.Hence the problem.
Please suggest the easiest way to store the template FMBs in the database.
Thanks & Regards,
G.S -
Should be able to enter both Japanese data and English data into the database without
Scenario 1:
Database Char Set: UTF 8
National CharSet :UTF8
String Type:Varchar2
Problem :Unable to enter more than 1/3rd of the field length specified when entering Kanji(Japanese) Data
Scenario 2:
Database Char Set: JA16EUC/JA16SJIS
National CharSet :JA16EUCFixed/JA16SJISFixed
String Type:NVarchar2
Problem :Unable to enter/retrieve English data written into the database but works fine with Japanese
Scenario 3:
Database Char Set: UTF8
National CharSet :JA16EUCFixed
String Type:NVarchar2
Problem :Unable to enter/retrieve English data written into the database but works fine with Japanese
nullYou will not be able to display the process form, or edit those values from the view profile screen.
You would need to create custom fields that are mapped from the process form to the user's profile. Then you would need to create user form update triggers from the User Defined Fields that when the user changes them, they get pushed to the target process form by adding those task names into the provisioning process definition. This would then trigger the updates to the target resource.
-Kevin -
Dear Sirs,
I try to do an authorization to my NW 7.3 Java instance through my Windows domain authorization.
I done:
1) Create connection to LDAP-server and tested it.
2) Add windows domain certificate to TrustedCAs
3) Configure SPnego
Now, I can to login in my NW7.3 Java instance with my windows password, but however I must to input password when I open NW7.3 Java homepage.
Is it possible to login into the Java instance without password's input, using my windows workstation login/password?
What I have to do for that?
I use Windows XP on my workstation and IE 8.0.6 & Chrome 38.0.2125.
Best regards,
Alexey LugovskoyPlease check
Using Kerberos Authentication on SAP NetWeaver AS Java - User Authentication and Single Sign-On - SAP Library (NW7.3)
Using Kerberos Authentication for Single Sign-On - User Authentication and Single Sign-On - SAP Library (NW7.0) -
Multiple logins to the database
Why is it if I login to my database thru SQL Developer I see multiple logins thru v$session?
OSUSER PROGRAM
dehresmann SQL Developer
dehresmann SQL Developer
For one connection I see two sessions in v$session?
thanks,Code Insight can provide context sensitive suggestions for what you are typing in an code editor window.
From the Help files (SQL Developer Preferences : Code Editor):
Code Editor: Code Insight
The Code Insight pane contains options for the logical completion (autocomplete
options) of keywords and names while you are coding in the SQL Worksheet.
When you press Ctrl+Space, code insight provides a context-sensitive popup window
that can help you select parameter names. Completion insight provides you with a list
of possible completions at the insertion point that you can use to auto-complete code
you are editing. This list is based on the code context at the insertion point. To exit
code insight at any time, press Esc.
You can enable or disable both completion and parameter insight, as well as set the
time delay for the popup windows.Hope that helps. -
Capture Web Cam image in APEX and Upload into the Database
Overview
By using a flash object, you should be able to interface with a usb web cam connected to the client machine. Their are a couple of open source ones that I know about, but the one I chose to go with is by Taboca Labs and is called CamCanvas. This is released under the MIT license, and it is at version 0.2, so not very mature - but in saying that it seems to do the trick. The next part is to upload a snapshot into the database - in this particular implementation, it is achieved by taking a snapshot, and putting that data into the canvas object. This is a new HTML5 element, so I am not certain what the IE support would be like. Once you have the image into the canvas, you can then use the provided function convertToDataURL() to convert the image into a Base64 encoded string, which you can then use to convert into to a BLOB. There is however one problem with the Base64 string - APEX has a limitation of 32k for and item value, so can't be submitted by normal means, and a workaround (AJAX) has to be implemented.
Part 1. Capturing the Image from the Flash Object into the Canvas element
Set up the Page
Required Files
Download the tarball of the webcam library from: https://github.com/taboca/CamCanvas-API-/tarball/master
Upload the necessary components to your application. (The flash swf file can be got from one of the samples in the Samples folder. In the root of the tarball, there is actually a swf file, but this seems to be a different file than of what is in the samples - so I just stick with the one from the samples)
Page Body
Create a HTML region, and add the following:
<div class="container">
<object id="iembedflash" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="320" height="240">
<param name="movie" value="#APP_IMAGES#camcanvas.swf" />
<param name="quality" value="high" />
<param name="allowScriptAccess" value="always" />
<embed allowScriptAccess="always" id="embedflash" src="#APP_IMAGES#camcanvas.swf" quality="high" width="320" height="240"
type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" mayscript="true" />
</object>
</div>
<p><a href="javascript:captureToCanvas()">Capture</a></p>
<canvas style="border:1px solid yellow" id="canvas" width="320" height="240"></canvas>That will create the webcam container, and an empty canvas element for the captured image to go into.
Also, have a hidden unprotected page item to store the Base64 code into - I called mine P2_IMAGE_BASE64
HTML Header and Body Attribute
Add the Page HTML Body Attribute as:
onload="init(320,240)"
JavaScript
Add the following in the Function and Global Variable Declarations for the page (mostly taken out of the samples provided)
//Camera relations functions
var gCtx = null;
var gCanvas = null;
var imageData = null;
var ii=0;
var jj=0;
var c=0;
function init(ww,hh){
gCanvas = document.getElementById("canvas");
var w = ww;
var h = hh;
gCanvas.style.width = w + "px";
gCanvas.style.height = h + "px";
gCanvas.width = w;
gCanvas.height = h;
gCtx = gCanvas.getContext("2d");
gCtx.clearRect(0, 0, w, h);
imageData = gCtx.getImageData( 0,0,320,240);
function passLine(stringPixels) {
//a = (intVal >> 24) & 0xff;
var coll = stringPixels.split("-");
for(var i=0;i<320;i++) {
var intVal = parseInt(coll);
r = (intVal >> 16) & 0xff;
g = (intVal >> 8) & 0xff;
b = (intVal ) & 0xff;
imageData.data[c+0]=r;
imageData.data[c+1]=g;
imageData.data[c+2]=b;
imageData.data[c+3]=255;
c+=4;
if(c>=320*240*4) {
c=0;
gCtx.putImageData(imageData, 0,0);
function captureToCanvas() {
flash = document.getElementById("embedflash");
flash.ccCapture();
var canvEle = document.getElementById('canvas');
$s('P2_IMAGE_BASE64', canvEle.toDataURL());//Assumes hidden item name is P2_IMAGE_BASE64
clob_Submit();//this is a part of part (AJAX submit value to a collection) two
}In the footer region of the page (which is just a loading image to show whilst the data is being submitted to the collection [hidden by default]) :<img src="#IMAGE_PREFIX#processing3.gif" id="AjaxLoading"
style="display:none;position:absolute;left:45%;top:45%;padding:10px;border:2px solid black;background:#FFF;" />If you give it a quick test, you should be able to see the webcam feed and capture it into the canvas element by clicking the capture link, in between the two elements - it might through a JS error since the clob_Submit() function does not exist yet.
*Part 2. Upload the image into the Database*
As mentioned in the overview, the main limitation is that APEX can't submit values larger than 32k, which I hope the APEX development team will be fixing this limitation in a future release, the workaround isn't really good from a maintainability perspective.
In the sample applications, there is one that demonstrates saving values to the database that are over 32k, which uses an AJAX technique: see http://www.oracle.com/technetwork/developer-tools/apex/application-express/packaged-apps-090453.html#LARGE.
*Required Files*
From the sample application, there is a script you need to upload, and reference in your page. So you can either install the sample application I linked to, or grab the script from the demonstration I have provided - its called apex_save_large.js.
*Create a New Page*
Create a page to Post the large value to (I created mine as 1000), and create the following process, with the condition that Request = SAVE. (All this is in the sample application for saving large values).declare
l_code clob := empty_clob;
begin
dbms_lob.createtemporary( l_code, false, dbms_lob.SESSION );
for i in 1..wwv_flow.g_f01.count loop
dbms_lob.writeappend(l_code,length(wwv_flow.g_f01(i)),wwv_flow.g_f01(i));
end loop;
apex_collection.create_or_truncate_collection(p_collection_name => wc_pkg_globals.g_base64_collection);
apex_collection.add_member(p_collection_name => wc_pkg_globals.g_base64_collection,p_clob001 => l_code);
htmldb_application.g_unrecoverable_error := TRUE;
end;I also created a package for storing the collection name, which is referred to in the process, for the collection name:create or replace
package
wc_pkg_globals
as
g_base64_collection constant varchar2(40) := 'BASE64_IMAGE';
end wc_pkg_globals;That is all that needs to be done for page 1000. You don't use this for anything else, *so go back to edit the camera page*.
*Modify the Function and Global Variable Declarations* (to be able to submit large values.)
The below again assumes the item that you want to submit has an item name of 'P2_IMAGE_BASE64', the condition of the process on the POST page is request = SAVE, and the post page is page 1000. This has been taken srtaight from the sample application for saving large values.//32K Limit workaround functions
function clob_Submit(){
$x_Show('AjaxLoading')
$a_PostClob('P2_IMAGE_BASE64','SAVE','1000',clob_SubmitReturn);
function clob_SubmitReturn(){
if(p.readyState == 4){
$x_Hide('AjaxLoading');
$x('P2_IMAGE_BASE64').value = '';
}else{return false;}
function doSubmit(r){
$x('P2_IMAGE_BASE64').value = ''
flowSelectAll();
document.wwv_flow.p_request.value = r;
document.wwv_flow.submit();
}Also, reference the script that the above code makes use of, in the page header<script type="text/javascript" src="#WORKSPACE_IMAGES#apex_save_large.js"></script>Assuming the script is located in workspace images, and not associated to a specific app. Other wise reference #APP_IMAGES#
*Set up the table to store the images*CREATE TABLE "WC_SNAPSHOT"
"WC_SNAPSHOT_ID" NUMBER NOT NULL ENABLE,
"BINARY" BLOB,
CONSTRAINT "WC_SNAPSHOT_PK" PRIMARY KEY ("WC_SNAPSHOT_ID")
create sequence seq_wc_snapshot start with 1 increment by 1;
CREATE OR REPLACE TRIGGER "BI_WC_SNAPSHOT" BEFORE
INSERT ON WC_SNAPSHOT FOR EACH ROW BEGIN
SELECT seq_wc_snapshot.nextval INTO :NEW.wc_snapshot_id FROM dual;
END;
Then finally, create a page process to save the image:declare
v_image_input CLOB;
v_image_output BLOB;
v_buffer NUMBER := 64;
v_start_index NUMBER := 1;
v_raw_temp raw(64);
begin
--discard the bit of the string we dont need
select substr(clob001, instr(clob001, ',')+1, length(clob001)) into v_image_input
from apex_collections
where collection_name = wc_pkg_globals.g_base64_collection;
dbms_lob.createtemporary(v_image_output, true);
for i in 1..ceil(dbms_lob.getlength(v_image_input)/v_buffer) loop
v_raw_temp := utl_encode.base64_decode(utl_raw.cast_to_raw(dbms_lob.substr(v_image_input, v_buffer, v_start_index)));
dbms_lob.writeappend(v_image_output, utl_raw.length(v_raw_temp),v_raw_temp);
v_start_index := v_start_index + v_buffer;
end loop;
insert into WC_SNAPSHOT (binary) values (v_image_output); commit;
end;Create a save button - add some sort of validation to make sure the hidden item has a value (i.e. image has been captured). Make the above conditional for request = button name so it only runs when you click Save (you probably want to disable this button until the data has been completely submitted to the collection - I haven't done this in the demonstration).
Voila, you should have now be able to capture the image from a webcam. Take a look at the samples from the CamCanvas API for extra effects if you wanted to do something special.
And of course, all the above assumed you want a resolution of 320 x 240 for the image.
Disclaimer: At time of writing, this worked with a logitech something or rather webcam, and is completely untested on IE.
Check out a demo: http://apex.oracle.com/pls/apex/f?p=trents_demos:webcam_i (my image is a bit blocky, but i think its just my webcam. I've seen others that are much more crisp using this) Also, just be sure to wait for the progress bar to dissappear before clicking Save.
Feedback welcomed.Hmm, maybe for some reason you aren't getting the base64 version of the saved image? Is the collection getting the full base64 string? Seems like its not getting any if its no data found.
The javascript console is your friend.
Also, in the example i used an extra page, from what one of the examples on apex packages apps had. But since then, I found this post by Carl: http://carlback.blogspot.com/2008/04/new-stuff-4-over-head-with-clob.html - I would use this technique for submitting the clob, over what I have done - as its less hacky. Just sayin.
Maybe you are looking for
-
Assigning instruments to specific keys on a USB keyboard
Is there a way to assign certain instruments to specific keys on a USB keyboard? I use an M-Audio Keystation 49e USB keyboard. It works fine, but I have no experience with MIDI and don't know what the "advanced functions" button on the keyboard allow
-
What to you do it your ipod is disconnected from the USB cord without being ejected first?
-
Drop Shadow etc in Illustrator cc
My version of Illustrator CC doesn't have any options for drop shadows etc. under stylise - is there something else I should download?
-
Where is a brush I created saved on my hard drive?
I just got a new computer and the brushes I created and saved are missing. Is there way to find them (I have access to my old hard drive)? Or are they gone for good? I can recreate them, but for some reason CS2 is not letting my define them to save t
-
Is there an easier/simpler way of obtaining this result ?
Good morning (afternoon to you, BluShadow), I obtained the following correct, as desired, output (derived from the EMP table): D10 D20 D30 PREZ MGRS ANALS SALESM CLERKS CLARK JONES WARD KING BLAKE FORD ALLEN ADAM