Grant table create for only temporary tables

I looking for a way to allow user to create only temporary tables. The user does not need to create or drop any public tables.

Hi,
>>This is really a bad suggestion. The user1 can now only select his own tables, no insert or update. It can not be allowed in the "real world".
The OP said "I looking for a way to allow user to create only temporary tables"
I think that you didn't understand what I showed ...
SYSTEM@test> create user user1 identified by user1 default tablespace USERS quota 0 on USERS;
User created.
SYSTEM@test> create user user2 identified by user2 default tablespace USERS quota unlimited on USERS;
User created.
SYSTEM@test> grant create session,create table, create synonym to user1,user2;
Grant succeeded.
SYSTEM@test> connect user2/user2@teste
Connected.
USER2@test> create table x (id number);
Table created.
USER2@test> insert into x values (1);
1 row created.
USER2@test> grant select,delete,insert,update on x to user1;
Grant succeeded.
USER2@test> connect user1/user1@teste
Connected.
USER1@test> create synonym x for user2.x;
Synonym created.
USER1@test> insert into x values (2);
1 row created.
USER1@test> select * from x;
        ID
         1
         2
USER1@test> create table y (id number);
create table y (id number)
ERROR at line 1:
ORA-01536: space quota exceeded for tablespace 'USERS'
USER1@teste> create table user2.y (id number);
create table user2.y (id number)
ERROR at line 1:
ORA-01031: insufficient privileges
USER1@test> drop table user2.x;
drop table user2.x
ERROR at line 1:
ORA-01031: insufficient privileges
USER1@test> create global temporary table y (id number) on commit preserve rows;
Table created.
USER1@test> insert into y values (1);
1 row created.
USER1@test> select * from y;
        ID
         1
USER1@test>Cheers

Similar Messages

  • Create view for Global Temporary Table

    if view is create for global temporary table so exactly how it works which helps regarding application performance.
    Regaards,
    Sambit Ray

    A view is just a stored query. It can be on global temporary tables or regular one, makes no difference.

  • Creating a Global Temporary Table on non-default TEMP tablespace.

    Hello ,
    I am using Oracle 11g.
    I have a procedure which create global temporary tables for its functionality. As the data which is going in the global temporary table , mean the data which is going in the default TEMP tablesapce is too huge ..... billions of rows..
    So what i want to do is , I want to create the global temporary table in another TEMP2 tablespace ( which is not the default one) so the load of billions of rows of data will be shifted to TEMP2. The default TEMP tablespace will not be affected and it can be used for other transactions.
    Is this possible. Can i shift the global temporary table from TEMP( Default temp tablespace) to TEMP2 ( the non-default temp tablespace) ????
    Please guide me with proper solutions and examples ....
    Thanks in advance ..

    DBA4 wrote:
    Hello ,
    I am using Oracle 11g.
    I have a procedure which create global temporary tables for its functionality. As the data which is going in the global temporary table , mean the data which is going in the default TEMP tablesapce is too huge ..... billions of rows..
    So what i want to do is , I want to create the global temporary table in another TEMP2 tablespace ( which is not the default one) so the load of billions of rows of data will be shifted to TEMP2. The default TEMP tablespace will not be affected and it can be used for other transactions.
    Is this possible. Can i shift the global temporary table from TEMP( Default temp tablespace) to TEMP2 ( the non-default temp tablespace) ????
    Global temporary tables are instantiated in the temporary tablespace of the schema that inserts the data - not into "the default" temporary tablespace.
    Assume Schema1 creates a GTT and grants all on that table to schema2
    Assume schema1 also creates a procedure (authid owner, the default) to insert data into the GTT and grants execute on the procedure to schema2
    If schema2 executes: insert into schema1.gtt, the data will appear in the temporary tablespace of schema2
    If schema2 executes: execute schema1.procedure, the data will appear in the temporary tablespace of schema1
    So if you want to protect the "normal" temporary tablespace, you could just create a special temporary tablespace for the owner of the procedure.
    Regards
    Jonathan Lewis

  • Procedure created for OLS table update

    I have created the following procedure in ( PL/SQL )that will insert rows into a table - in addition to the rowlabel. It inserts the rows correctly when I use the 'label_to_char' function in the procedure, however my users cannot see the data that they have access to until they manually insert a row into the table themselves.
    I have changed the procedure using the 'to_data_label' function to see if that might work. I get an invalid column error when the procedure gets executed. However, when I do a manual insert using the to_data_label function for only one row, it does work.
    I also have tried aliasing the rowlabel row, and it still does not work. Here is my procedure:
    (I am new to creating procedures, so it may be something in the way it is written.)
    create or replace procedure insert_comps(v_tag number,
    v_short varchar2,
    v_long varchar2,
    v_parent varchar2,
    v_row varchar2 default null)
    is
    v_rl varchar2(60) := 'TS:';
    begin
    if v_row is null then
    if v_short != v_parent then
    v_rl := v_rl||v_parent||','||v_short;
    elsif v_parent = v_short then
    v_rl := v_rl||v_short;
    end if;
    else
    v_rl := v_row;
    end if;
    insert into policy_compartments(
    rowlabel,
    short_name,
    long_name,
    tag,
    parent)
    values(to_data_label('BBORDER',v_rl),
    v_short,
    v_long,
    v_tag,
    v_parent);
    end insert_comps;
    Are there any suggestions?
    Thanks in advance,
    Christine

    Example...
    Schema 1 (scott):
    SQL> create table x (x number);
    Table created.Schema 2:
    SQL> create table x (x number);
    Table created.
    SQL> ed
    Wrote file afiedt.buf
      1  create or replace procedure pop_x authid current_user is
      2  begin
      3  insert into x values (1);
      4  commit;
      5* end;
    SQL> /
    Procedure created.
    SQL> grant execute on pop_x to scott;
    Grant succeeded.Schema 1 (scott):
    SQL> exec schema2.pop_x;
    PL/SQL procedure successfully completed.
    SQL> select * from x;
             X
             1
    SQL>Schema 2:
    SQL> select * from x;
    no rows selected
    SQL>;)

  • Applying table scroll bar for only table rows with table columns fixed.

    hi oa gurus,
    i had implemented table scroll bars using oarawtextbean , there is no problem in vertical and horizontal scroll bar working its working fine. but the requirement is i need to scroll only the table rows with table columns fixed. so , how to achieve the table scroll for only table datas neglecting table headers.
    the code for vertical and horizontal bars scroll is like this,
    OARawTextBean ors = (OARawTextBean)webBean.findChildRecursive("raw1");
    ors.setText(div id=tabledivid style=height:500px;width:100%; overflow:auto>);
    OARawTextBean ore = (OARawTextBean)webBean.findChildRecursive("raw2");
    ore.setText("</div>");
    where raw1 and raw2 are rawtextbean created above and below of the table . but i dont know hoow to apply this only for table rows neglecting table columns , can anybody give any ideas.
    pelase this is very urgent , can u help me in this regards
    thanks
    Edited by: user630121 on Sep 29, 2008 5:17 AM
    Edited by: user630121 on Sep 29, 2008 5:18 AM

    hi,
    I have a similar task to do... Only to apply scrollbar at the table level.
    I tried using the above mentioned but I am facing Null Pointer Exception..
    Please explain about raw1 and raw2
    Rahul

  • How can i write the trigger for Global Temporary Table

    Hi Grus,
    How can i write the trigger for Global Temporary Table.
    I was created the GTT with trigger using the below script .
    CREATE GLOBAL TEMPORARY TABLE GLOBAL_TEMP
    EMP_C_NAME VARCHAR2(20 BYTE)
    ON COMMIT PRESERVE ROWS;
    CREATE OR REPLACE TRIGGER TRI_GLOBAL_TEMP
    BEFORE DELETE OR UPDATE OR INSERT
    ON GLOBAL_TEMP
    REFERENCING NEW AS NEW OLD AS OLD
    FOR EACH ROW
    BEGIN
    INSERT INTO EMPNAME VALUES (:OLD.EMP_C_NAME);
    END;
    trigger was create successfully, but the wouldn't insert into to EMPNAME Table..
    Please guide whether am correct or not? if not kindly give a correct syntax with example
    Thanks in Advance,
    Arun M M

    BEGIN
    INSERT INTO EMPNAME VALUES (:OLD.EMP_C_NAME);
    END;
    you are referencing old value in insert stmt.
    BEGIN
    INSERT INTO EMPNAME VALUES (:new.EMP_C_NAME);
    END;then run ur application it works fine...
    CREATE GLOBAL TEMPORARY TABLE GLOBAL_TEMP
    EMP_C_NAME VARCHAR2(20 BYTE)
    ON COMMIT PRESERVE ROWS;
    CREATE OR REPLACE TRIGGER TRI_GLOBAL_TEMP
    BEFORE DELETE OR UPDATE OR INSERT
    ON GLOBAL_TEMP
    REFERENCING NEW AS NEW OLD AS OLD
    FOR EACH ROW
    BEGIN
    dbms_output.put_line(:OLD.EMP_C_NAME||'yahoo');
    INSERT INTO EMPNAME VALUES (:new.EMP_C_NAME);
    dbms_output.put_line(:OLD.EMP_C_NAME);
    END;
    create table EMPNAME as select * from GLOBAL_TEMP where 1=2
    insert into GLOBAL_TEMP values('fgfdgd');
    commit;
    select * from GLOBAL_TEMP;
    select * from EMPNAME;
    output:
    1 rows inserted
    commit succeeded.
    EMP_C_NAME          
    fgfdgd              
    1 rows selected
    EMP_C_NAME          
    fgfdgd              
    1 rows selectedgot it Arun
    Edited by: OraclePLSQL on Dec 28, 2010 6:07 PM

  • How Create a Global Temporary Table inside a Stored Procedure?

    Hi...
    I need to create a Global Temporary Table inside a Stored
    Procedure....
    I have no idea how to do that....
    Please....if u can send me a sample, send to me....
    Thanks a lot

    there are many ways to do this..
    one u can use dbms_utility package to run ddl statements like
    for ex:
    declare
    t varchar2(200):='order_no';
    v number;
    begin
    --dbms_utility.exec_ddl_statement('select '||t||' into '||v||'
    from
    --ordermaster where rownum=1');
    dbms_utility.exec_ddl_statement('create table cvt(t number)');
    dbms_output.put_line(v);
    end;
    but the actual method(recommended) involves a bit coding using
    dbms_sql package you will find examples on technet or metalink
    to use this package..
    I hope this helps
    Narendra

  • Table to find sales order created for a transaction type.

    Hello all
    I have a requirement that i need to check all the orders created for a transaction type and to find out how many of them are active now and how many of them are deleted.
    i know only the transaction type and based on this input i need to know the above details is there any report or table for this.
    Thanks and Regards
    shanto aloor

    Hello shanto aloor,
    in the database table CRMD_ORDERADM_H you can search by transaction type. In Se16 you can enter the process_type to find the related transactions. If you have the header GUID you can use also the report (SE38) CRM_ORDER_READ to get more details of the transaction.
    Hopefully this information will help you to meet your requirement.
    regards
    Rene

  • How to find the TCODE that is created for the table maintanance generator

    Hi ,
    How to find the TCODE that is created for the table maintanance generator of particular table,if we only know the table name.
    Regards
    Ramakrishna L

    Hello,
    I try it this way
    1. Goto SE16 --> enter table TSTCP.
    2. In the selection-screen displayed, enter
    PARAM = *<ZTABNAME>*
    You will get the t-code for the TMG.
    BR,
    Suhas
    PS: Are you sure a t-code has been created for this TMG ?

  • How many SECONDARY INDEXES are created for CLUSTER TABLES?

    how many SECONDARY INDEXES are created for CLUSTER TABLES?
    please explain.

    There seems to be some kind of misunderstanding here. You cannot create a secondary index on a cluster table. A cluster table does not exist as a separate physical table in the database; it is part of a "physical cluster". In the case of BSEG for instance, the physical cluster is RFBLG. The only fields of the cluster table that also exist as fields of the physical cluster are the leading fields of the primary key. Taking again BSEG as the example, the primary key includes the fields MANDT, BUKRS, BELNR, GJAHR, BUZEI. If you look at the structure of the RFBLG table, you will see that it has primary key fields MANDT, BUKRS, BELNR, GJAHR, PAGENO. The first four fields are those that all cluster tables inside BSEG have in common. The fifth field, PAGENO, is a "technical" field giving the sequence number of the current record in the series of cluster records sharing the same primary key.
    All the "functional" fields of the cluster table (for BSEG this is field BUZEI and everything beyond that) exist only inside a raw binary object. The database does not know about these fields, it only sees the raw object (the field VARDATA of the physical cluster). Since the field does not exist in the database, it is impossible to create a secondary index on it. If you try to create a secondary index on a cluster table in transaction SE11, you will therefore rightly get the error "Index maintenance only possible for transparent tables".
    Theoretically you could get around this by converting the cluster table to a transparent table. You can do this in the SAP dictionary. However, in practice this is almost never a good solution. The table becomes much larger (clusters are compressed) and you lose the advantage that related records are stored close to each other (the main reason for having cluster tables in the first place). Apart from the performance and disk space hit, converting a big cluster table like BSEG to transparent would take extremely long.
    In cases where "indexing" of fields of a cluster table is worthwhile, SAP has constructed "indexing tables" around the cluster. For example, around BSEG there are transparent tables like BSIS, BSAS, etc. Other clusters normally do not have this, but that simply means there is no reason for having it. I have worked with the SAP dictionary for over 12 years and I have never met a single case where it was necessary to convert a cluster to transparent.
    If you try to select on specific values of a non-transparent field in a cluster without also specifying selections for the primary key, then the database will have to do a serial read of the whole physical cluster (and the ABAP DB interface will have to decompress every single record to extract the fields). The performance of that is monstrous -- maybe that was the reason of your question. However, the solution then is (in the case of BSEG) to query via one of the index tables (where you are free to create secondary indexes since those tables are transparent).

  • F4 help for only a single cell in a table

    Dear All,
    The requirement here is to provide input help for only a particular cell in a table.
    This cannot be achieved by assigning search help to the attribute of the context as this will render all the cells of that particular column with F4 help. I tried applying the cell variant concept but only go up to a certain extent.
    I tried OVS as well. But for this to work we need to lead select the entry and then go ahead with F4, which will make is inconvenient for the user.
    I even searched the forum for some answers, but i could only go to a certain extent with the help of those.
    So, if anyone out there has any idea, please help me out. Also, if this is a repeat post by any chance (i think not) kindly provide me with the link of the original.
    Thanks and Best Regards,
    Pramod

    I am running older versions, so i didn't find any sample dynpros..
    You can try with this peace of code..nyways..
    DATA: LR_TABLE TYPE REF TO CL_WD_TABLE.
    DATA: LR_COLUMNS TYPE CL_WD_table_column=>tt_table_column.
    DATA: LR_COLUMN TYPE REF TO CL_WD_TABLE_COLUMN.
    DATA: LR_EDITOR TYPE REF TO CL_WD_VIEW_ELEMENT.
    DATA: LR_TEXT   TYPE REF TO CL_WD_TEXT_VIEW.
    DATA: BINDING TYPE STRING.
    DATA: LR_CELL TYPE REF TO CL_WD_TABLE_STANDARD_CELL.
    IF FIRST_TIME EQ ABAP_TRUE.
      LR_TABLE ?= VIEW->GET_ELEMENT( 'TBL_COMPONENTS' ).
      LR_COLUMNS = LR_TABLE->GET_COLUMNS( ).
      LOOP AT LR_COLUMNS INTO LR_COLUMN.
        LR_EDITOR ?= LR_COLUMN->GET_TABLE_CELL_EDITOR( ).
        BINDING = LR_EDITOR->BOUND__PRIMARY_PROPERTY( ).
        IF BINDING EQ 'RRSO.SOCOMP.POSNR' OR
           BINDING EQ 'RRSO.SOCOMP.MATNR' OR
           BINDING EQ 'RRSO.SOCOMP.KWMENG' OR
           BINDING EQ 'RRSO.SOCOMP.NETPR' OR
           BINDING EQ 'RRSO.SOCOMP.POPRICE' OR
           BINDING EQ 'RRSO.SOCOMP.QUANTITY'.
           LR_CELL = CL_WD_TABLE_STANDARD_CELL=>NEW_TABLE_STANDARD_CELL( VIEW = VIEW
                                VARIANT_KEY = 'TOTAL' ).
           IF BINDING EQ 'RRSO.SOCOMP.QUANTITY'.
             LR_TEXT = CL_WD_TEXT_VIEW=>NEW_TEXT_VIEW( VIEW = VIEW
                                                       TEXT = 'Total'
                                                       H_ALIGN = CL_WD_TEXT_VIEW=>E_H_ALIGN-FORCED_RIGHT ).
           ELSE.
             LR_TEXT = CL_WD_TEXT_VIEW=>NEW_TEXT_VIEW( VIEW = VIEW ).
           ENDIF.
           LR_CELL->SET_EDITOR( LR_TEXT ).
        ENDIF.
         LR_COLUMN->ADD_CELL_VARIANT( LR_CELL ).
      ENDLOOP.
    ENDIF.
    This code is for setting Text View as cell editor, instead text view u can take input field and use bind_value method to bind with another context attribute.
    Abhi

  • How can i create a Global Temporary Table inside a Stored Procedure....

    Hi...
    I need to create a Global Temporary Table inside a Stored
    Procedure....
    I have no idea how to do that....
    Please....if u can send me a sample, send to me....
    Thanks a lot

    To create a global temporary table inside a stored procedure,
    the minimal syntax would be:
    CREATE OR REPLACE PROCEDURE procedure_name
    AS
    BEGIN
    EXECUTE IMMEDIATE 'CREATE GLOBAL TEMPORARY TABLE table_name'
    || '(column_name NUMBER)';
    END procedure_name;
    As Todd stated, it would probably be better to create the global
    temporary table outside of the procedure:
    SQL> CREATE GLOBAL TEMPORARY TABLE table_name
    2 (column_name NUMBER);
    Table created.
    You can also specify things like ON COMMIT PRESERVE ROWS or ON
    COMMIT DELETE ROWS.
    It may be that there is something else, like a PL/SQL table of
    records or a cursor, that would suit your needs better. It is
    difficult to guess without knowing what you want to do with it.

  • How to check whether follow on document is created for sc or po,is there any table or fm available?

    How to check whether follow on document is created for sc or po,is there any table or fm available?

    Hello Venu
    Check FM: BBP_PD_SC_GETDETAIL and BBP_PD_PO_GETDETAIL table E_HEADER_REL
    Check this: SRM Shopping cart and PO tables link
    Regards

  • How to identify whether any data source is created for a table?

    hi all,
    How to identify whether any extractions is been carried out for a particular table, view or function module(generic extraction)? from r/3.
    bcos i need to create an extraction for a table, view and function module. But  iam not sure whether any extractions is already been created for those tables, view, function modules??
    thanxs
    haritha

    Hi,
    By passing the following values as selection to table  ROOSOURCE we can find whether any data source has been created or not .
    EXMETHOD = V
    EXTRACTOR = Table name
    hope it helps..
    regards,
    raju

  • Script to create grants and synonyms for objects in database

    Hello,
    We are building a patch to be applied to the production environment. I want to create a script/sql query that builds a list of grants and synonyms for all the objects created after august 09.
    for ex:
    create or replace synonym abc for schema_name.abc;
    Grant execute on abc to user_xyz;
    How can I use Oracle's data dictionary to do this?
    thankz

    Hi,
    You'll probably want to use these views:
    user_objects - includes created (DATE) column.
    user_synonyms
    user_tab_privs - not just tables (e.g., includes EXECUTE privileges on functions).
    Data dictionary views beginning with 'user_' cover objects owned by the current user only.
    Almost all of the data dictionary views (and all of the three mentioned above) also have 'all_' and 'dba_' versions.
    For example:
    all_objects inculdes everything in user_objects, plus objects in other schemas on which the current user has privileges.
    dba_objects include every object in the database. (Not everyone is allowed to see the dba_ views.)
    Here's one of many possible ways to use these views:
    SELECT     'GRANT '
    ||     privilege
    ||     ' ON "'
    ||     table_name
    ||     '" TO '
    ||     grantee
    ||     CASE
              WHEN  grantable = 'YES'
              THEN  ' WITH GRANT OPTION;'
              ELSE  ';'
         END
    FROM     user_tab_privs
    WHERE     table_name  IN (          -- Only interested in objects created after August 9
                     SELECT  object_name
                     FROM    all_objects
                     WHERE   created >= TO_DATE ( '10-Aug-2009'
                                                           , 'DD-Mon-YYYY'
    ;

Maybe you are looking for

  • HT1430 My inbox is update is taking too much time?

    My inbox is not getting updated?  I see the sign "checking e-mail" displayed for more than an hour and still the inbox does not get updated.  Also when I send a message, I do not see it in the Sent box.

  • How to import a flash swf file in premier. Without loosing the animation of the movie symbols.

    HEEELLPPP!! I am doing animations in flash... and then putting them in premier as a SWF file.. but when I do that, the animation does not work properly.. example : If its a star that spins, and goes from left to right. When I put the swf file in prem

  • Mac or PC?

    It's time to upgrade and I am just stumped! I've been using PC's all of my life but I keep hearing about how Macs work great. My question is: As it relates to Adobe CS6; Which is better - Mac or PC? I'm using some of everything.

  • How to import CR2 files with XMP files?

    I'm using LR 1.4.1 on a Vista platform (with service pack 1). Last week my OS got corrupted and I had to reinstall everything. So I'm trying to get my catalog back into LR but am having a lot of trouble. When I try to open LR using the latest backup

  • CR report and Flash

    Hello, I want to make database application in FlashPHP and then import it into CR report but I 've read that AIR desktop applications can interact with local SQLite database. I've got a question is it possible to write db application in AIR and then