Distinguish Between Oracle Predefined Users / Roles - Customized Ones?
Apr 18, 2012
I am looking for a query which can select all existing Oracle predefined users and roles from db.I need it because one of my other scripts needs to know a given user name or role is a customised one or a system one.It looks like sys.user$ does not have any column that can be used to distinguish predefined users/roles.
I could find all the list of Oracle predefined users and roles by googling and hardcoded them in a query. I can also collect all the customised users and roles as well. However, I prefer a query which can automatically reports that and minimise the maintenance cost as new names and roles, either Oracle predefined or customised, may come out at anytime.
I have create a table with 8 million records and 2 different indexes using 2 different columns (columns name NUM1 & NUM2) on that table. First indexed column (NUM1) values have many different values (1,2,3... etc).
Second indexed column (NUM2) values have only 2 different values. 7999999 records values is same("A") and remaining one record values is different("B").
Query1: select * from tbl where num1=val
Query2: select * from tbl where num2='B'
I have compare explain plan both queries, but Query2 doesn't use predefined index. Why Oracle don't use my redefined index at column NUM2?
I have customized system on oracle 10g ( English interface and reports ) , the company want to make the system in both (Arabic and English) , i make every thing is okay , but the problem when i change the PDF subset in the file uifont.ali to include Arabic fonts , the report server every 2 hours stopped and give me the message ( server is in progress ) ,
My company has a "generic information management platform" based on Oracle,
including:
Oracle Identity Manager 10g Lotus Oracle Internat Directory 10g Oracle Portal 10g Oracle E-Business Employee Oracle E-Business User Management Microsoft Active Directory Mail System Oracle Database
All above these systems constitute the generic information management platform. --------------------------------------------------------------------------------------- There are 60,000 user records in the Oracle Database, lots of user records are duplicate, invalid and redundant. We want delete them by Oracle Identity Manager. But Oracle Identity Manager has no bulk deletion of users function!!!
So, we want customized development this generic information management platform, specifically customized development Oracle Identity Manager 10g's administrator interface.
We want add a JSP page, use this JSP page to bulk delete users. (user number > 60,000) ---------------------------------------------------------------------------------------- What's should we do? We can't directly manipulate the database to delete the users, all users are associated by API and exist in many systems. ----------------------------------------------------------------------------------------
I got a task to send some alters based on the user query data .As user is not a SQL expert, so we have to provide him a query builder. Now to store user query, I decided to build a data model and keeping in mind the reusability of previously made queries (so that we can use them directly in further queries).Like a user made two queries:
1. Find patient id, name, sugar_level, pulse_rate, weight for those patients whose diabitic level is greater than 'X' 2. Find patient id, pulse_rate for all those patients whose diabitic level is greater than 'X' and weight > 90
So first query can be directly used in second query. (Just a very simple example)But I am pretty much confused with the decision of columns for each table to store query and how to relate them.
Tables I am able to identify is :
1. Table to store query level details, i.e. query_id, who created, query_short_name, query_description, operator used (SET, GROUP BY, HAVING, etc), distinct indicator, etc. 2. select clause table or columns selected table 3. From clause table 4. table to store group by clause 5. table to store having clause
I am trying to store seprate parts of the query into seprate tables, but not getting which columns to have in each table, how to relate them... and after that, for a given query_id, procedure to construct a whole query, and then validate/parse and execute it using dbms_sql and scheduler.
I have countries, sites, states tables (total 3) in database (i have user id and password to connect to this database).
every week i need to extract data from these tables into excel files and i need to save those in shared drive for team use.
Currently i am connecting to database every time running sql query and manually exporting that latest data to excel and saving that as excel files in (G: eamcommon) folder with specific name.
output format should be :
excel (.xls) file names should - countries.xls,sites.xls,states.xls server name : ap21 output location : G: eamcommon ( G is shared drive).
i heard that we could create batch file to do this task and also we could use oracle procedure to do this task. but not sure which one is the best option.
I have a functional index.. which doesn't allow duplicate based on condition.I want to catch the exception and print the customized message but it always override my message.
create or replace function i_func (tt_id in number, d_date date, stat in varchar2) return varchar2 [code].....
I am having a application which is on Widows NT Operating system.I am using Oracle 10g Database, Developer suite 10g And 10g Application server.
My application uses Run_report_object to generate reports.Run_Report_Object is called in forms and Report server is configured in the same Application server where FMX are placed.
The report generation was working fine as long as oracle default login was used. When i created a form to handle login on my own, Report server is throwing "Unable to connect to database" error. My login forms takes the parameters from user and calls default logon command in on_Logon trigger.
I am trying to find out if there is a definite way to find out (by querying database) which database users have been created by Oracle (either during installation or as part of patching or adding new feature) and which database users have been created by DBAs.
I have looked into the documentation but could not find anything relevant. Ideally, I would like to know if this can be done for any versions starting from 9iR2.
I'm working on a client-server application that uses ODBC to connect Windows XP or Windows 7 PCs to an Oracle 11 database. I use a dedicated account to connect to Oracle, and I get the users Windows login name using the call shown in the title. I use the Windows login name to verify that they can access my application. I've been asked by security conscious folks in our IT department how this information is obtained
My question is: where does Oracle get the value of the users Windows login name? Is it coming from a windows registry key? Environment variable? I heard that it's possible that the ODBC driver is calling a Microsoft Win32 function like GetUserName or GetUserNameEx to retrieve the user ID.
During installation of a database Oracle creates several users. Also when using DBCA in a later stage to add more options Oracle can create more users.
Here's my problem: Public synonyms never get exported using exp(dp)/imp(dp) utility. Ofcourse using public synonyms isn't good practise, but sometimes handy. Unfortunately in our environment they have been used a lot in the passed.
So I want to create an SQL statement that does the trick and returns only all users that were NOT created by Oracle software.
I've tried several things, but can't seem to distinguish Oracle users from Manually created users.
I want to drop some users in Oracle DB using sqlplus but I am getting error:
SQL> DROP USER test CASCADE; DROP USER test CASCADE * ERROR at line 1: ORA-01940: cannot drop a user that is currently connected.But when I ran below command to know sessions connected I am not getting any results:
SQL> select sid,serial# from v$session where username = 'test';
OS: RHEL 5.7 64 bit DB: 11.2.0.2 Standard Edition 64 bit
Everyday EOD is run and after the eod, users are requesting to receive a mail confirming the same from the database. For this we need to configure automated email which will be sent to a list of users email ID immediately after the EOD is done.
I need to copy more than 1000 database users(without objects) from orcle 9i to oracle 11g. They don't allow to use any graphical tools.which is the best way to complete this task? does conventional export /import works for only users only ?
I'm not sure if this belong to this place. move it to the proper place.
I'm having an annoying problem: (I'm not sure if it is a problem) - In a package body I'm trying to delete/update/insert/select the contents of a table in other schema. - The respective synonym exists. - I had created a role with the respective privileges over the synonym. - I granted the role to the package's owner. - I try to compile the package, but it keeps returning compilation errors. (Not table found) - In standard SQL, I can delete/insert/update/select over the table. - The only way to compile the package, without errors, is to grant the privileges directly to the package's owner.
I am using Oracle9i Enterprise Edition Release 9.2.0.6.0 - 64bit Production.I have a table D_GEOGRAPHY_25729 in RDS schema and I have created a role ACC_D_TABLES logging as ADMIN.
Now I have given GRANT SELECT access for table D_GEOGRAPHY_25729 to role ACC_D_TABLES.
There is another schema TRANS in the same database which has the role ACC_D_TABLES. But after logging in this schema, I am not able to query directly from table D_GEOGRAPHY_25729. I need to use like below to access the table.
select * from RDS.D_GEOGRAPHY_25729 Having the correct role ACC_D_TABLES to TRANS schema, why should I use RDS.D_GEOGRAPHY_25729 ? Is it not possible without prefixing the RDS schema name?
It is possible when I create a public synonym for D_GEOGRAPHY_25729 in RDS schema, but if i do so everyone can access this table.
I would like to Center Align application login page(Syslogin) oracle froms 11gr2. The below code is not working in forms 11g2, it's working in Forms 6i
Using Apex 4.1 and custom authentication based on Oracle Database users.
I want to be able to show a warning immediately after a user logs in if their password is due to expire in xx days. Oracle raises a warning (ORA-28002) but I don't know how to handle that from the standard Apex login page.
i want to get user (dba roles in combo box runt time).i have write down this code in when new form instance.
declare rg_id recordgroup := find_group('RG') ; ln_error number ; begin if not id_null(rg_id) then ln_error := populate_group(rg_id) ; if ln_error = 0 then populate_list('BLOCK3.T' , rg_id) ; else message('Error in Populating Group') ; end if ; end if ; end ;
attached file.when i run it gives the follwoing error. frm-41334-invalid record group.
record group query is: SELECT GRANTED_ROLE FROM DBA_ROLE_PRIVS WHERE GRANTEE='MTSYS'
I am trying to create a script where a user can be granted all the roles that another user has. I created a script:
create user yyyyy identified by zzzz default tablespace ahspace temporary tablespace temp_data;
grant connect to yyyyy;
declare cursor grantpriv is select granted_role from dba_role_privs where grantee='xxxxx'; -- existing user cursor_name integer; statement varchar2(200); Begin cursor_name :=dbms_sql.open_cursor;
I read that few privilegs can not be granted to roles like 'UNLIMITED TABLESPACE ' and they need to granted to user directly.
1. Is there any reason behind that few privileges cant be granted to roles or is it just oracle design. 2. what kind of privileges cant be assigned to roles.
I am working on the roles and privs. I want to provide the privs on any object to any user through the roles. not a direct grant.I am having 150 users and 50 roles, I want to do this using the script is few strokes. for this I have tried to create a script but I am not able to make that.
For example There is 2 user scott and test
A. test is having select privs on scott.emp. B. Test is having insert,delete,update privs on scott.emp; c. DB is having 2 roles scott_edit - insert,delete,update privs on tables scott_read - select privs on tables
I want to revoke separate privs from test and want to given only scott_edit and scott_read (which(roles) is having all privs)