SQ03 - accessing userids in the table
Hi
Is it possible to access the table which holds the userids that are assigned to a particular usergroup (as part of standard area) without having access to SQ03 to maintain entries in the table? On occasions HR needs to check that userids have definitely been assigned to the usergroup so that users can use the reporting tools, however we are not ones doing the actual assignment and so I am trying to understand if a read only view of the table is possible by modifying security authorisations or else by accessing this table using perhaps another transaction like SE16 etc?
Many thanks
Nicola
Hi Nocola,
unfortunately the data is stored in a cluster table and not a transparent table.
But I think for your needs the FM RSAQ_READ_USERGROUP_CATALOG is enough.
Be aware that this FM only evaluates the really stored associations and not the logical ones!
By logical I mean if the user has Superuser right in the S_QUERY authorization he will be able to see anything with no assigment necessary. But the FM will return nothing as it only looks into the tables.
Regards,
Michael
PS: For different types of reporting you should have a look here at the different starting reports available <a href="http://help.sap.com/saphelp_erp2005vp/helpdata/en/4c/ed7a38f7da1404e10000009b38f842/frameset.htm">Reports Calling InfoSet query</a>
Similar Messages
-
How i can access and edit the table of database(.mdb) file through Labview
Dear sir,
I want to access and edit the table of database(.mdb) file through Labview and it should save.
please tell me how i can do it.
i am waiting for reply.
regards
Rajendrathere are options aplenty for this. First off, do you have the database connectivity toolset? If so, You can do it from there. Following the examples in labview. Or you can do a search for ADO or access database, and find plenty of VIs that can do this.
Paul <--Always Learning!!!
sense and simplicity.
Browse my sample VIs? -
Extracting the table access details for trans / program = RFC
Dears,
Is there a way to extract more table access details, when it is stated in trans. ST03, for the 'Table Access Statistics' that the table was used by 'Report / Transaction' : RFC ? i.e. is there a way to get the actual Report or Transaction that accessed the table ?
Thanks.
RedaI re-open the thread as it is not permitted to close it and re-open it in another forum.
-
How can I restrict more then one user to access the table?
Hi !
I have a problem and two solutions and I am a bit confused as to
which one is the best one and/or can there be any better way of
handling the problem ?
Problem : I have to update a key field of a table when I update
it in the form 5.0 screen. I am basically doing a maintenance of
a table and if a certain field is updated then the change has to
be reflected in two more tables. But the issue is that the field
is a part of the key in those two tables. So all I can think of
is that I need to insert new set or rows for that new value of
the field and delete the old set of records for old values of
the field.
There are two ways of doing it;
1.One option can be to explicitely define two cursors separately
and fetch the values in them one by one and then insert the new
records and then delete the old records in both the tables. This
I feel will be a cumbersome process both in terms of processing
time and the coding.
2.Second option I was thinking can be to create two flat tables
(without keys) and insert the values in them and update the
changed field there and then insert the rows in the respective
tables. Delete the old records in the main tables and delets the
records in these flat tables. This is a bit more faster and
easier to predict and code. This seems to be a better option for
me.
Any comments on these ?
In both the cases I was thinking of making some provision so
that more then one person can't update the table simultaneously.
Since if there are more then one persons doing the processing
then some inconsistency might creep into the whole process.
This is easier to do in the second process as if I check the
data in the flat tables and if there is some data then I can
presume that some one is doing the processing and I can ask the
other person to hold for a while. But in this case how can I
stop more then two people to simultaneously check for the empty
table and start inserting the record ?
I was just thinking of having a sepatare table having only one
field and this will be a key field and as the process begins the
process will insert a fix value say 'Y' in the key field and at
the end of the process the record will be deleted and this way
we can restrict the user to access the process more then one at
a time..? Since you can't have same value of the key in a table
more then once.
Any better way of handling it will be deeply appreciated.
How about locking the table at the begining and releasing the
lock at the end ? Will there be any issue in that? since I am
inserting and deleting the rows in the same transaction.
Comments welcome,
Shobhit
nullHow about performing the update IN the database using a stored
procedure?
By using non-database fields on your form to get the
information, you can then call the procedure in the database to
perform the updates. If an error occurs in the procedure you
rollback, if necessary, and send a message or status back to the
form. If it succeeds you might wish to commit and then re-
execute the form's query -- using either the original key values
or the new key values...
null -
Getting the table names in an MS Access database
Hi,
I am new to JDBC and making a client/server application that updates a MS Access database through jdbc:odbc.
I need to get a list of existing user tables in the db. I have found a great document on the net which has the code, however the code doesn't work. I have tried different ways and looked every where with no success. (link to the doco: http://www-128.ibm.com/developerworks/opensource/library/j-jdbc-objects/)
Here is my dbManager class that handles all db related services in my application. I would appreciate any help I can get as I have exhusted all my avenues.
Thanks
Sep,
* dbManager.java
* Created on 31 October 2005, 10:20
* To change this template, choose Tools | Options and locate the template under
* the Source Creation and Management node. Right-click the template and choose
* Open. You can then make changes to the template in the Source Editor.
import java.io.*;
import java.sql.*;
import java.util.regex.*;
* @author AUMahdavSe
public class dbManager {
/** Constant Declaration */
public static final String Driver = "sun.jdbc.odbc.JdbcOdbcDriver";
public static final
String sqlCreateTable = "create table TABLENAME (" +
"name varchar (100)," +
"surname varchar(100)," +
"computerType integer," +
"computerNAL varchar(20)," +
"haveMonitor integer," +
"monitorNAL varchar (20)," +
"auditDate varchar(10) );";
public static final String sqlUpdateTable = "insert into TABLENAME values" +
" (NAMEHOLDER, SURNAMEHOLDER, COMPTYPE, COMPNAL, HAVEMON, MONNAL);";
/** Attributes */
private String dbURL = "jdbc:odbc:";
private String Username = "admin"; // user input
private String Password = "purina123"; // user input
private String ODBCDataSource; // config file
private String dbPath; // set through config file or defaults to current folder
private String configFile = "config.txt"; // set either at commandline or defaults to current folder
private Connection con = null;
private Statement stmt = null;
private ResultSet tables;
private DatabaseMetaData dma;
private ResultSetMetaData rsmd;
private String CurrentAuditTable = "TestTable2";
int numCols, i;
/** Set Methodes */
public void setUsername( String usr ) {
this.Username = usr;
public void setPassword( String pswd ) {
this.Password = pswd;
public void setDbPath( String path ) {
this.dbPath = path;
public void setODBCDataSource( String ds ) {
this.ODBCDataSource = ds;
public void setDbURL( String dsname ) {
this.dbURL = this.dbURL + dsname;
/** Get Methodes */
public String getDriver() {
return this.Driver;
// can be run only after a connection obj is setup
public void getMDA() {
try {
this.dma = this.con.getMetaData();
catch (SQLException ex) {
System.err.println("database connection: " + ex.getMessage());
public void getDBTables() {
//now dump out the names of the tables in the database
String[] types = new String[1];
types[0] = "TABLES"; //set table type mask
//note the %-sign is a wild card (not '*')
try {
this.tables = this.dma.getTables(null, null, "%", types);
dumpResults("--Tables--");
this.tables.close();
//this.listTables();
catch (SQLException ex) {
System.err.println("database connection: " + ex.getMessage());
// listing tables
/*int count = 0;
int numCols = 0;
//ResultSetMetaData rsmd;
try {
System.out.println("Listing db tables ...");
//this.tables.beforeFirst();
rsmd = this.tables.getMetaData();
numCols = rsmd.getColumnCount();
System.out.println("number of cols: " + numCols);
boolean more = this.tables.first();
System.out.println("this is why: " + more);
while ( more ) {
count++;
for (int i = 1; i <= numCols; i++)
System.out.print( "Table-" + count + " -> " + this.tables.getString(count)+" " );
System.out.println();
more = this.tables.next();
catch ( SQLException ex ) {
System.out.println( "problem listing db tables: " + ex.getMessage() );
/** Other Methodes */
// Initialize the db parameters, like driver, username, passwd, etc.
public void dbInitialize() {
// load configuration from config.txt (dbPath and ODBC Data Source name)
this.loadDbConfig();
// loadDriver
this.loadDriver();
// get username and password for the ODBC from user
this.getDSSecurity();
// populate dbURL, username and password
this.setDbURL( this.ODBCDataSource );
// connect to db
this.dbConnect();
// get db metadata
this.getMDA();
// get a list of tables in db
this.getDBTables();
// load JDBC driver
public void loadDriver() {
try {
Class.forName( getDriver() );
} catch (Exception e) {
System.out.println("Failed to load JDBC/ODBC driver.");
return;
// connects to db and create a Connection obj and a Statement obj
public void dbConnect() {
try {
this.con = DriverManager.getConnection (
this.dbURL,
this.Username,
this.Password);
this.stmt = con.createStatement();
} catch (Exception e) {
System.err.println("problems connecting to "+this.dbURL);
// creates table tblname in db
public void CreateTable( String tblname ) {
try {
String sqlcommand = mergeTblName(sqlCreateTable, tblname);
this.stmt.execute( sqlcommand );
catch (SQLException ex) {
System.err.println("problems with SQL statement sent to "+this.dbURL+
": "+ex.getMessage());
System.out.println("SQL Command: " + mergeTblName(sqlCreateTable, tblname) );
// updates db with new record(s) by executing the SQL query sqlstmt
// and closes db connection
public void dbUpdate( String sqlstmt ) {
try {
// execute SQL commands to create table, insert data
this.stmt.execute( sqlstmt );
this.con.close();
} catch (Exception e) {
System.err.println("problems with SQL sent to "+this.dbURL+
": "+e.getMessage());
// list all user tables in the db
public void listTables() {
//now dump out the names of the tables in the database
int count = 0;
try {
System.out.println("Listing db tables ...");
//this.tables.beforeFirst();
while ( this.tables.next() ) {
count++;
System.out.print( "Table-" + count + " -> " + this.tables.getString(1) );
System.out.println();
catch ( SQLException ex ) {
System.out.println( "problem listing db tables: " + ex.getMessage() );
// checks whether tbname exist in db as a table
// this function has to be called after dbConnect
public boolean tableExists( String tbname ) {
boolean tbexists = false;
//get the database metadata
try {
dma = con.getMetaData();
catch (SQLException ex) {
System.err.println("database connection: " + ex.getMessage());
//now dump out the names of the tables in the database
String[] types = new String[1];
types[0] = "TABLES"; //set table type mask
//note the %-sign is a wild card (not '*')
try {
tables = dma.getTables(null, null, "%", types);
catch (SQLException ex) {
System.err.println("database connection: " + ex.getMessage());
try {
while ( tables.next() ) {
if ( tbname.equalsIgnoreCase( tables.getString(1) ) ) {
tbexists = true;
catch ( SQLException ex ) {
System.err.println("database connection: " + ex.getMessage());
return tbexists;
// merge tablename using REGEX
public String mergeTblName( String sqlcommand, String tbname ) {
String REGEX = "TABLENAME";
String INPUT = sqlcommand;
String REPLACE = tbname;
Pattern p = Pattern.compile(REGEX);
Matcher m = p.matcher(INPUT); // get a matcher object
INPUT = m.replaceAll(REPLACE);
//System.out.println(INPUT);
return INPUT;
// merge feildnames specific terms using REGEX
public String mergeFldName( Message msg ) {
String sqlcommand;
sqlcommand = "insert into TABLENAME values" +
" ('" + msg.getName() + "', '" + msg.getSurname() + "', " +
msg.getComputerType() + ", '" + msg.getComputerNAL() + "', " +
msg.getHaveMonitor() + ", '" + msg.getMonitorNAL() + "', '" +
msg.getDateOfMsg() + "');";
sqlcommand = mergeTblName( sqlcommand, CurrentAuditTable );
return sqlcommand;
// get users input char
/**public char getChar() {
int i = System.in.read();
while (i != -1) {
// here's your character
char c = (char) i;
i = System.in.read();
return (char) i;
// load the config parameters from config.txt
public void loadDbConfig() {
// make a file obj pointing to the config file config.txt
File configFile = new File( this.configFile );
//...checks on configFile are elided
StringBuffer contents = new StringBuffer();
//declared here only to make visible to finally clause
BufferedReader input = null;
try {
//use buffering
//this implementation reads one line at a time
input = new BufferedReader( new FileReader(configFile) );
String line = null; //not declared within while loop
int count = 0;
while (( line = input.readLine()) != null){
//first line in config file is dbPath
if(count == 0) this.setDbPath( line.trim() );
//second line in config file is ODBCDataSource
if(count == 1) this.setODBCDataSource( line.trim() );
count++;
//contents.append(line);
//contents.append(System.getProperty("line.separator"));
catch (FileNotFoundException ex) {
System.err.println("the file congif.txt cannot be found ...");
System.err.print("Enter the path to db file (e.g. c:\\temp): ");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
// read the db path from the command-line; need to use try/catch with the
// readLine() method
try {
this.setDbPath( br.readLine() );
catch (IOException ioe) {
System.out.println("IO error trying to read user input.");
System.exit(1);
System.err.print("Enter the name of the ODBC Data Source: ");
// read the ODBC Data Source name from the command-line; need to use try/catch with the
// readLine() method
try {
this.setODBCDataSource( br.readLine() );
catch (IOException ioe) {
System.out.println("IO error trying to read user input.");
System.exit(1);
ex.printStackTrace();
catch (IOException ex){
//ex.printStackTrace();
finally {
try {
if (input!= null) {
//flush and close both "input" and its underlying FileReader
input.close();
catch (IOException ex) {
//ex.printStackTrace();
//return contents.toString();
// get datasource security details i.e. username and password
public void getDSSecurity() {
// get username
System.out.print("Enter username for the ODBC DataSource: ");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
// read the username from the command-line; need to use try/catch with the
// readLine() method
try {
this.setUsername( br.readLine() );
catch (IOException ioe) {
System.out.println("IO error trying to read username.");
System.exit(1);
// get password
System.out.print("Enter password: ");
// read the username from the command-line; need to use try/catch with the
// readLine() method
try {
this.setPassword( br.readLine() );
catch (IOException ioe) {
System.out.println("IO error trying to read password.");
System.exit(1);
private void dumpResults(String head)
//this is a general routine to print out
//column headers and the contents of each column
System.out.println(head);
try
//get the number of columns from the metadata
this.rsmd = this.tables.getMetaData();
numCols = this.rsmd.getColumnCount();
//print out the column names
for (i = 1; i<= numCols; i++)
System.out.print(rsmd.getColumnName(i)+" ");
System.out.println();
//print out the column contents
boolean more = this.tables.next();
while (more)
for (i = 1; i <= numCols; i++)
System.out.print(this.tables.getString(i)+" ");
System.out.println();
more = this.tables.next();
catch(Exception e)
{System.out.println(e.getMessage());}
/** Creates a new instance of dbManager */
public dbManager() {
this.dbInitialize();
}here is the result when I make a new dbManager obj from my server class which is a multithreaded one.
H:\java>java EchoServer
Enter username for the ODBC DataSource: admin
Enter password: purina123
Tables
TABLE_CAT TABLE_SCHEM TABLE_NAME TABLE_TYPE REMARKS
Listening for clients on 12111...
here is the code of my server class called EchoServer:
import java.net.*;
import java.io.*;
public class EchoServer
ServerSocket m_ServerSocket;
dbManager haDB;
public EchoServer()
// db methods to setup a jdbc connection to the database
haDB = new dbManager();
// list tables
//haDB.listTables();
//haDB.getDBTables();
// create table
//haDB.CreateTable("TestTable2");
// update table
// server code
try
// Create the server socket.
m_ServerSocket = new ServerSocket(12111);
catch(IOException ioe)
System.out.println("Could not create server socket at 12111. Quitting.");
System.exit(-1);
System.out.println("Listening for clients on 12111...");
// Successfully created Server Socket. Now wait for connections.
int id = 0;
while(true)
try
// Accept incoming connections.
Socket clientSocket = m_ServerSocket.accept();
// accept() will block until a client connects to the server.
// If execution reaches this point, then it means that a client
// socket has been accepted.
// For each client, we will start a service thread to
// service the client requests. This is to demonstrate a
// multithreaded server, although not required for such a
// trivial application. Starting a thread also lets our
// EchoServer accept multiple connections simultaneously.
// Start a service thread
ClientServiceThread cliThread = new ClientServiceThread(clientSocket, id++, haDB);
cliThread.start();
catch(IOException ioe)
System.out.println("Exception encountered on accept. Ignoring. Stack Trace :");
ioe.printStackTrace();
public static void main (String[] args)
new EchoServer();
class ClientServiceThread extends Thread
Socket m_clientSocket;
int m_clientID = -1;
dbManager m_db;
boolean m_bRunThread = true;
ClientServiceThread(Socket s, int clientID, dbManager db)
m_clientSocket = s;
m_clientID = clientID;
m_db = db;
public void run()
// Obtain the input stream and the output stream for the socket
// A good practice is to encapsulate them with a BufferedReader
// and a PrintWriter as shown below.
BufferedReader in = null;
PrintWriter out = null;
Message msg = new Message();
// Print out details of this connection
System.out.println("Accepted Client : ID - " + m_clientID + " : Address - " +
m_clientSocket.getInetAddress().getHostName());
try
in = new BufferedReader(new InputStreamReader(m_clientSocket.getInputStream()));
out = new PrintWriter(new OutputStreamWriter(m_clientSocket.getOutputStream()));
// At this point, we can read for input and reply with appropriate output.
// Run in a loop until m_bRunThread is set to false
while(m_bRunThread)
// read incoming stream
String clientCommand = in.readLine();
if ( clientCommand.indexOf(",") != -1 ) {
msg.deserialize( clientCommand );
System.out.println("SQL command: " + m_db.mergeFldName(msg) );
m_db.dbUpdate( m_db.mergeFldName(msg) );
//System.out.println("Name :" + msg.getName() );
//System.out.println("Surname :" + msg.getSurname() );
//System.out.println("ComputerType :" + msg.getComputerType() );
//System.out.println("ComputerNAL :" + msg.getComputerNAL() );
//System.out.println("HaveMonitor :" + msg.getHaveMonitor() );
//System.out.println("Monitor NAL :" + msg.getMonitorNAL() );
//System.out.println("AuditDate :" + msg.getDateOfMsg() );
System.out.println("Client Says :" + clientCommand);
if(clientCommand.equalsIgnoreCase("quit"))
// Special command. Quit this thread
m_bRunThread = false;
System.out.print("Stopping client thread for client : " + m_clientID);
else
// Echo it back to the client.
out.println(clientCommand);
out.flush();
catch(Exception e)
e.printStackTrace();
finally
// Clean up
try
in.close();
out.close();
m_clientSocket.close();
System.out.println("...Stopped");
catch(IOException ioe)
ioe.printStackTrace();
}I find that taking any problem and reducing it to the simplest thing is the best way to approach it.
Why you had to post all that bloody code (especially since you didn't write it) is beyond me.
This will list all the tables in an Access database (or any other, for that matter):
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import org.jdom.Element;
import org.jdom.Document;
import org.jdom.output.XMLOutputter;
public class TableLister
public static final String DRIVER = "sun.jdbc.odbc.JdbcOdbcDriver";
public static final String DATABASE = "jdbc:odbc:DRIVER={Microsoft Access Driver (*.mdb)};DBQ=c:\\Edu\\Java\\Forum\\DataConnection.mdb";
public static final String USERNAME = "admin";
public static final String PASSWORD = "";
public static void main(String [] args)
try
String driver = ((args.length > 0) ? args[0] : DRIVER);
String url = ((args.length > 1) ? args[1] : DATABASE);
String username = ((args.length > 2) ? args[2] : USERNAME);
String password = ((args.length > 3) ? args[3] : PASSWORD);
Class.forName(driver);
Connection conn = DriverManager.getConnection(url, username, password);
DatabaseMetaData meta = conn.getMetaData();
// Bring back ALL tables and views, including SYSTEM tables.
ResultSet tables = meta.getTables(null, null, null, null);
ResultSetMetaData rsmd = tables.getMetaData();
int numColumns = rsmd.getColumnCount();
List columnNames = new ArrayList();
for (int j = 0; j < numColumns; ++j)
columnNames.add(rsmd.getColumnName(j+1));
Element root = new Element("tables");
int tableCount = 0;
while (tables.next())
Element table = new Element("table");
table.setAttribute("id", Integer.toString(++tableCount));
for (int j = 0; j < numColumns; ++j)
Element column = new Element((String)columnNames.get(j));
column.setText(tables.getString((String)columnNames.get(j)));
table.addContent(column);
root.addContent(table);
conn.close();
Document doc = new Document(root);
XMLOutputter outputter = new XMLOutputter(" ", true);
System.out.println(outputter.outputString(doc));
catch (ClassNotFoundException e)
System.err.println("Couldn't load JDBC driver class");
e.printStackTrace();
catch (SQLException e)
System.err.println("SQL state: " + e.getSQLState());
System.err.println("SQL error: " + e.getErrorCode());
e.printStackTrace();
catch (Exception e)
e.printStackTrace();
}Run it and see if it works for you. If it does, put the essence of the code into your stuff.
% -
How to find OWNER of the table- if user doesn't have a access to it?
I am in the strange situtation- that I need to make a configuration script to give to DBA so that he can give necessary access to to populate the data into the application. However- he needs exact sql scripts so that he can run it without manupulating it. The user does have access to some tables but not all the tables. So I need to write the scriopts with OWNER name and table name and what permission I need.
I probably can do it with trial and error method by quering the scripts: Desc OWNER_name(guess).table_name (known)- if it runs in my Toad - then my educated guess owner is right otherwise ..if it gives the message "object nor found or something like that" then the educated guessed OWNER is NOT correct - then need to do trial and method by selecting all the possible schema I know in that application.
Right?
Is there any experts/oracle db biggies has any easier and accurate SOLUTION. THE DATABASE 11G
Edited by: Higlander on Sep 29, 2010 2:33 PMHi,
You probably need to ask your DBA to create synonyms for you for the table you want to access to or otherwise you have to ask him grant permission to you on that table itself. If you are not sure who is the owner of the table, then you will have to ask your DBA to query in dba_tables/dba_views/dba_segments views to find the owner.
Regards,
SK -
How do you access all the tables in print layout designer?
Hello, I noticed that I can access only the main tables such as OPOR or ORDR tables, but how can I access POR1 or RDR1?
Any help is appreciated, thank you.Please press the ALT key when you click the Table drop down list.
-
Problem while displaying all the table names from a MS Access Data Source.
I started preparing a small Database application. I want to display all the Table Names which are in the 'MS Access' Data Source.
I started to executing by "Select * from Tab" as if in SQL.
But i got an error saying that "Not able to resolve Symbol 'Tab' in the query".
Please let me know how can i display all the table Names in the MS Access Dats Source.Here i am developing the application in Swing using JDBC for accessing the database.
I want to display all the Table names from the data source in a ListBox for easy selection of tables to view their details. -
Number of Times the table has been accessed
Hi,
How to find the number of the times the table has been accessed or read ?
Regards,You can do it with 9i
http://www.mpi-inf.mpg.de/departments/d5/teaching/ss05/is05/oracle/server.920/a96521/audit.htm
Kamran Agayev A. (10g OCP)
http://kamranagayev.wordpress.com -
Access other schema's table without specify the schema name
Hi, need ur help again,
I would like to access other schema's table without specify the schema name. for example,
select * from hr.jobs;
What priviledges i need if i want to select the data in this way:
select * from jobs;
Thanks!Public synonyms have their place, but are not generally a good idea as they will cause conflicts with other schemas and applications. Another think that you can do is issue the
ALTER SESSION set CURRENT_SCHEMA = schema;
The CURRENT_SCHEMA (8i and above) parameter changes the current schema of the session to the specified schema. Subsequent nqualified references to schema objects during the session will resolve to objects in the specified schema. The setting persists for the duration of the session or until you issue another ALTER SESSION SET CURRENT_SCHEMA statement. CURRENT_SCHEMA is a session parameter only, not an initialization parameter.
This setting offers a convenient way to perform operations on objects in a schema other than that of the current user without having to qualify the objects with the schema name. This setting changes the current schema, but it does not change the session user or the current user, nor does it give you any additional system or object privileges for the session. -
Last time the table has been accessed flag
Is there any easier way to "log" when was the last time every table has been accessed than this ones:
-Audit all on every table and just check sys.aud$ when was the last time the table has a session rec (action# = 103)
-Place a trigger on every table to log the last access
If you wonder why I need it is beacause I have around 200 tables, some of them quite heavy, and probably half of them are not being used anymore so I want to backup and delete those tables from the database.
ThanksEasier than
audit select on table <your_table> by access;and later query DBA_AUDIT_TRAIL?
Don't think so. -
Attach a selection screen to a Tcode before accessing the table Contents
Hi All,
I have a requirement where when we access table from se16 we get a default selection screen...So the same selection screen should b displayed when that table is accessed directly with a transaction code attached to it..i mean the path is Tcode -->selection screen --> table/view contents.Hi srinivas,
first let us discuss about your requirement.when you go to transaction se16 and enter a table name and then when you press enter you will get a selection screen to cretae or view contents of that table.you want to get that selection screen by entering any tcode in command bar.
if this is your requirement please follow these steps.
1)go to se16
2)enter the table name and then press enter.you will get a selection screen for that table as we discussed
3)in the selection screen go to menu item
System->Status...
you will get another screen
4)in that screen you will see
in SAP data->in Repository data->Program(Screen)
note that program name
5)go to se93(to create a transaction)
6)enter a tcode which you like and press create
7) you will get another screen and in that screen select the radio button
Program and selectio screen(Report Transaction)
8)you will get create report transaction screen
9)in that screen in program text box enter the program name that you noted earlier
10)check all the checkboxes in GUI support
11)save,check and execute the transaction.you will get the selection screen that you get when you use se16 for that table.
please check the screen by entering the tcode that you created in teh command bar.
please reward points if useful. -
Problem in accessing the table
Hi,
My database in 10g (10.2.0.4), I have created one user TEST and given insert,update,delete on ABC table to TEST from XYZ user.
Also,
Grant select any table to test;
but when i connect with test and accessing tables of xyz it is showing error 'table or view does not exist' and i select the table with xyz.abc then i can select the table of xyz.
I do not want to create any synonyms for this table. Can you please help while accessing the table from TEST user without username.tablename
AnandAnand Vyas wrote:
Actually i have given the example of one table but i have given grant on many table to TEST user.
Also end user uses these tables in application and he can not agree to set alter session in his application.
Is there any way to access the tables of XYZ which i have given the grant to TEST without username.tablename means xyz.abc
Thanks in advance.
AnandGiven your other requirements/restrictions, your only option is to create a synonym. Why do you not want to do that? If you have many of them, you can "write a sql to write a sql"
spool doit.sql
select 'create or replace public synonym ' ||
table_name ||
' for xyz.' ||
table_name ||
from dba_tables
where owner = 'XYZ';
spool off -
How can i access the table GL_CODE_COMBINATIONS !!
I'm sorry ~ My English is poor ~~ understand me ^^
I execute procedure APPS.GL_TEST but error occured
ORA-00904:"GL_TEST";invalid identifier.
but it execute well at orange (program that like toad)
May be i can't access GL_CODE_COMBINATIONS table ~~
I have to execute APPS.GL_CODE_COMBINATIONS_PKG.INSERT_ROW(
X_ROWID => X_ROWID,
X_CODE_COMBINATION_ID => X_CCID,
it have GL_CODE_COMBINATIONS table
so have to make account ccid
How can i access the table GL_CODE_COMBINATIONS !!
Thank you ^^
--CREATE OR REPLACE PROCEDURE APPS.GL_TEST(EFFBUF OUT VARCHAR2, RETCODE OUT NUMBER)
IS
V_VAL NUMBER;
BEGIN
UPDATE GL_CODE_COMBINATIONS
SET SEGMENT7 = 'TEST'
WHERE CODE_COMBINATION_ID = 1169;
END GL_TEST;
Message was edited by:
jakeORA-00904:"GL_TEAT";invalid identifier.spelling mistake?
Is user APPS owner of the table GL_CODE_COMBINATIONS?
If not, you need to grant the necessary privilege directly and not through a role -
Created a user with permissions to one table, but unable to access the table
I've tried to create a Login that will have access to a single table from a few different databases.
When I try and query the table, using the created Login I get the following error:
"The server principal "log_Reader" is not able to access the database "MyDB" under the current security context."
Here's the SQL I used to create the Login/User:
USE MASTER
GO
CREATE LOGIN log_Reader
WITH PASSWORD = '<password>'
GO
USE DB1
GO
CREATE USER log_Reader FOR LOGIN log_Reader
GRANT SELECT ON dbo.logtable TO log_Reader
USE DB2
GO
CREATE USER log_Reader FOR LOGIN log_Reader
GRANT SELECT ON dbo.logtable TO log_Reader
USE DB3
GO
CREATE USER log_Reader FOR LOGIN log_Reader
GRANT SELECT ON dbo.logtable TO log_Reader
USE DB4
GO
CREATE USER log_Reader FOR LOGIN log_Reader
GRANT SELECT ON dbo.logtable TO log_Reader
Does anyone have any ideas what I've missed ?
Thanks, Jason
MCITP BI Developer - MCTS SQL Server (http://bichopsuey.wordpress.com/)I cannot reproduce the error, can you run my script?
USE [master]
GO
CREATE LOGIN [test1] WITH PASSWORD=N'test',
DEFAULT_DATABASE=[master], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF
GO
USE [B]
GO
CREATE TABLE [dbo].[t1](
[c] [int] NULL,
[c2] [char](1) NULL
) ON [PRIMARY]
CREATE USER [test1] FOR LOGIN [test1] WITH DEFAULT_SCHEMA=[dbo]
GO
GRANT SELECT ON [t1] TO [test1]
EXECUTE AS USER = 'test1';
--Use B database
SELECT * FROM [t1] ---works
REVERT
USE master
GO
EXECUTE AS USER = 'test1';
SELECT * FROM B.dbo.[t1] ---works
REVERT
Best Regards,Uri Dimant SQL Server MVP,
http://sqlblog.com/blogs/uri_dimant/
MS SQL optimization: MS SQL Development and Optimization
MS SQL Consulting:
Large scale of database and data cleansing
Remote DBA Services:
Improves MS SQL Database Performance
SQL Server Integration Services:
Business Intelligence
Maybe you are looking for
-
Create a magnifying glass on an image.
I am pretty new to Flex. I am trying to create a magnifying glass for an image viewer. I want to move the cursor over an image that will zoom in on a 200X200 area. I don't want to zoom in on the whole image. I can see I can probably do it with the Bi
-
Re : Remove System and Authentication from QaaWS login dialog
Hello there, Hope all is well. I am trying to get rid of OR pre-populate with default values for System ( CMS) and Authentication boxes from QaaWS login dialog. I know you can do it in Desktoplauch and Adminlaunch ( Yes I am using BOXI R2 SP5) ...by
-
Preloader progress bar not move in IE, but move well in Firefox
I have been in this problem for several days. I really got frustrated about it. Pls. anybody can give me some help. I created a general preloader using movieClipLoader object and draw a progress bar using movieClip. I set the progress bar's progress
-
Can I install 9i and 8i in one Solaris8 server?
as title. This is a important problem to me. thanks.
-
Data download from CRM from standard browser based transactions
This is, I'm afraid, rather a general question. I'm doing some R&D for a software development company (SAP Partner), and we're looking for a few use cases for where data is downloaded from CRM, specifically from browser based transactions. We're not