Prevent specific users to drop the partition of table

Hello

I'm having the following problem: on the CUSTOMERS table, I implemented a policy that prevents specific users to delete records that have REPORT_DATE (it is a DATE column) over 2 months. Works very well.
These users are actually "login" I identify using sys_context ('USERENV', 'OS_USER').

However... I realized that these users can fall any partition of this table (the table partitioned BY RANGE) so the policy that I have implemented is unnecessary.

My question: is it possible to prevent specific users to delete a partition?
All partitions in the CUSTOMERS table are associated with a REPORT_DATE unique that's why I want to prevent the destruction of the wall that has a REPORT_DATE related more than two months...


Thank you
MR. R.

Hello

Revoke the privilege of the Oracle user who is connected. (privileges are granted to the and helped by users Oracle, no internal users that you identify well as SYS_CONTEXT.)

If it is the owner of the schema, and then create a different pattern of all the newspapers-ins, which has only the privileges that these users must have. Modify the application so that it uses this log-in Oracle and not the owner of the table schema.

Tags: Database

Similar Questions

  • Prevent a user from changing the ID of project in P6 EPPM 8.3.7

    Anyone know if there is a Global privilege or project security profile that prevents a user from changing the project on an existing project ID?  We use Primavera P6 EPPM 8.3.7

    Thank you

    Eric

    Hello

    Security of the project profile below can help you

    Change the details of the project with the exception of costs / Financials

    Determines if the profile will allow users to modify fields in general tabs, Dates, default values, resources, and settings of the project details. To assign a project of baselines, users must also have the privilege of project 'assign the planning of project"assigned to their profile.

    Kind regards

    Marcos

  • Allow only specific users based on the list of users in a table

    We have a situation where we allow specific users that are stored in a table.
    create table ALLOW_USERS (username varchar2(30) );
    
    CREATE OR REPLACE TRIGGER USERS_TRIGGER
       AFTER LOGON
       ON DATABASE
    DECLARE
    BEGIN
      IF DBMS_STANDARD.LOGIN_USER NOT IN (SELECT USERNAME FROM ALLOW_USERS)
    
             THEN
                   RAISE_APPLICATION_ERROR (-20001, 'Unauthorized login');
           END IF;
    END;
    /
    
    Warning: Trigger created with compilation errors.
    
    SQL> show error
    Errors for TRIGGER USERS_TRIGGER:
    
    LINE/COL ERROR
    -------- -----------------------------------------------------------------
    3/3      PL/SQL: Statement ignored
    3/38     PLS-00405: subquery not allowed in this context
    How to use the subquery above the trigger? or is there a better way to achieve required results.

    -Thank you

    I'm surpised nobody reported to functions attribute Event for customer event triggers and ora_login_user in particular:

    CREATE OR REPLACE
      TRIGGER NOT_SYS.RESTRICTED_USERS_TRIG
        AFTER LOGON
        ON DATABASE
        DECLARE
            v_cnt NUMBER;
        BEGIN
            SELECT  COUNT(*)
              INTO  v_cnt
              FROM  not_system.ALLOW_RESTRICTED_USERS
              WHERE username = ora_login_user;
            IF v_cnt = 0
              THEN
                RAISE_APPLICATION_ERROR(-20001,'Unauthorized login');
            END IF;
    END;
    / 
    

    SY.

    Published by: Solomon Yakobson on June 3, 2013 15:43

  • What happens to the existing after the partition of table index and created with local index

    Hi guys,.

    / / DESC part id name number, varchar2 (100), number of wage

    In an existing table PART I add 1 column DATASEQ MORE. I wonder the part of table based on dataseq.now, the table is created with this logic of partition

    create the part table partition (identification number, name varchar2 (100), number of salary, number DATASEQ) in list (dataseq) (values partition PART_INITIAL (1));

    Suggestionn necessary. given that the table is partitioned based on DATASEQ I wonder to add local indexes on dataseq. to dataseq, I have added a local index create index idx on share (dataseq) LOCAL; Now my question is, already, there are the existing index is the column ID and salary.

    (1) IDX for dataseq is created locally so that it will be partition on each partition on the main table. Please tell me what is happening to the index on the column ID and salary... it will create again in local?

    Please suggest

    S

    Hello

    first of all, in reality 'a partition table' means create a new table a migration of existing data it (although, theoretically, you can use dbms_redefinition to partition an existing table - however, it's just doing the same thing behind the scenes). This means that you also get to decide what to do with the index - index will be local, who will be global (you can also reassess some of existing indexes and decide that they are not really necessary).

    Second of all, the choice of the partitioning key seems weird. Partitioning is a data management technique more that anything else, in order to be eligible, you must find a good partitioning key. A column recently added, named "data_seq" is not a good candidate. Can you give us more details about this column and why it was chosen as a partitioning key?

    I suspect that the person who proposed this partitioning scheme made a huge mistake. A non-partitioned table is much better in all aspects (including the ease of management and performance) that divided one wrongly.

    Best regards

    Nikolai

  • How to prevent a user to call the system recover?

    I managed PCs in a small office. SCP is Dell and Sys. Recover partition. When you do updates recently, I noticed one of the PCs of the employee had a COMPLETE system to recover well and played course the employee now has admin. account. (If you are interested, said employee PC started acting a weird day, then reset to the recovery screen... done this sound possible?)

    How to prevent this? (The PC is Windows Vista)

    If you have a recovery cd (you can get one from the manufacturer of your pc), and then delete the volume/partition system recovery, so that no one will be able to do a restore system without your permission.

    Also set a password for the BIOS and disable boot CD, so that you are the only person who can start on the recovery cd.

    hope this helps

    If this post can help solve your problem, please click the 'Mark as answer' or 'Useful' at the top of this message. Marking a post as answer, or relatively useful, you help others find the answer more quickly.

  • How to prevent any user to install the software?

    Hello

    In our environment, we have the field. We are in the domain user.
    I need to restrict the user to install software that have the admin privilege?

    You need to change the 'Admin' user to 'Standard' account, as the Admin account can always install software on their local computer.

    You can also post your question on the Windows 7 IT Pro forum for a possible alternative: http://social.technet.microsoft.com/Forums/en-US/w7itproinstall/threads

    J W Stuart: http://www.pagestart.com

  • Dropped the curiously named table in the schema table sheets

    I use Oracle XE and I'm not logged as an administrator. Just as a user called 'hr '.

    I dropped an empty table called "Date_tine_demo" (sic) to help

    DROP TABLE date_tine_demo;
    

    But when I checked the tables in my diagram to help

    SELECT * FROM tab;
    

    the 'date_tine_demo' table was missing, but there was a table with a really weird name

    Before:

    TNAME                          TABTYPE  CLUSTERID                               
    ------------------------------ ------- ----------                                                                        
    COUNTRIES                      TABLE 
    DATE_TINE_DEMO           TABLE                                          
    DEPARTMENTS                TABLE                                            
    EMPLOYEES                    TABLE                                            
    EMP_DETAILS_VIEW       VIEW                                             
    JOBS                                 TABLE                                            
    JOB_HISTORY                  TABLE                                            
    LOCATIONS                      TABLE                                            
    PROMOTIONS                  TABLE                                            
    REGIONS                         TABLE  
    

    After:

    TNAME                          TABTYPE  CLUSTERID                               
    ------------------------------ ------- ----------                               
    BIN$zP+eIjJ7ShCOnQb4EGVHig==$0 TABLE                                            
    COUNTRIES                                             TABLE                                            
    DEPARTMENTS                                       TABLE                                            
    EMPLOYEES                                             TABLE                                            
    EMP_DETAILS_VIEW                                VIEW                                             
    JOBS                                                            TABLE                                            
    JOB_HISTORY                                          TABLE                                            
    LOCATIONS                                             TABLE                                            
    PROMOTIONS                                         TABLE                                            
    REGIONS                                                  TABLE                              
    

    If anyone can offer advice on what this table is and how to get rid of, I would be grateful

    What is in the garbage?

    And if you don't want table to go to the basket when you drop, either disable the trash with ALTER SESSION/SYSTEM SET RECYCLEBIN = OFF or use DROP TABLE table_name PURGE. And to get rid of what is currently used to recycle bin PURGE RECYCLEBIN.

    SY.

  • The partition names table

    Hi all.

    I have a doubt. Is it possible to rename a partition of a table name after it is created? I have a database of development I've been testing the hash partitioning, and seeking the dba_tab_partitions I could see the following:


    TABLE_NAME NOM_PARTITION TABLESPACE_NAME
    ------------------ ------------------------- --------------------------
    TEST SYS_P21 TEST
    TEST SYS_P22 TEST_1
    TEST SYS_P23 TEST_2


    I tried to rename by using update dba_tab_partitions set partition_name = 'TEST' where nom_partition = 'SYS_P21 '; but he has failed. Is it possible to rename the names of partitions?

    Thank you very much.

    Hello

    Partition can be renamed. You must use alter table...
    When you have tried to update internal tables Oracle directly.

    Concerning

  • Restore the partition table data

    Hello


    DB 10.2.0.1

    I have a dump file in which exported the data from a table to a database. This table is based partioned. I have imported into the database B. I have truncated or tried successively to the partition of the table in database B now I want to import the data from the export dump file in the same table. I don't want to import the data again for all partitions. I want to just import only truncated how data I could do?

    Thank you

    Hello

    Even I did as you say, but we give below error.

    In fact, it is not an error message:

    Import completed successfully without warnings.

    You have SQL code contained in the "dump":

    CREATE TABLE 'TRADING_TEST' ("BRAND_DESCRIPTION' VARCHAR2 (120)...)

    For example, you may notice that importation will try to recreate the Table of TRADING_TEST with all its partitions. Of course, it will generate an error and you will not be able to import the data in the Partition. Unless you have just TRUNCATE and you use the parameter IGNORE = Y.

    So, if you TRUNCATE the Partition you do not have to recreate.

    If you DROP the Partition, it is best to recreate first (ALTER TABLE ADD PARTITION...).

    Then import you the datas like that (I just add IGNORE and LOG settings):

    imp system/password file=C:\exportTable32\table.dmp FROMUSER=dev touser=system tables=(TRADING_TEST:A15) ignore=y log=C:\exportTable32\table.log
    

    However, I hope that it is just for test purpose, because it is not recommended to create the user Tables in the SYSTEM.

    Hope this helps.
    Best regards
    Jean Valentine

  • Exclude the partition during the updating of the BCV

    Hello
    On the source, there is a table of compartmentalized. The developer wants to load the data in a specific partition. But does not carry the destination database when it gets cloned. This is to save on storage space. The destination records database and this particular partition is not required on the database.
    I can't use expdp include partition options because the entire database is updated using the bcv copy.
    I can't try to create the partition in a different tablespace because even in this case, BCV copy would still physically copy the files. So even if I change the control file creation script (excluding data files that are part of this tablespace partitoned), it benefits from the scenario.
    The other options I have are to copy the data to destination and drop the partition on the destination. But which somehow defeats the purpose. The goal is to save storage and copy in time.

    Are there any alternatives to this scenario?

    Thank you
    MSK

    BCV is much faster. But more quick isn't necessarily a good thing.

    You could make the tablespace readonly or you could just tell RMAN to exclude it from the backup.
    Search: CONFIGURE EXCLUDE for the TABLESPACE in the docs.

    Or use an existing backup and restore it simply cannot.

    Choice is yours.

  • Workspace user security to the process

    Hello, I take my first process of work space, and I have problems with the implementation of the security so that only specific users can see the category and the process. Am I missing something?  I was throughout the /AdminUI and searched this forum for an hour now and finally decided to post a question.  What I want is to have is so that when a user connects they will only see the categories that I gave them the rights to, and then click the process under this category that they have rights too.  Can someone point me in the right direction on what to do, where to go for more information on how to set up?  Thank you.

    There is no way to enforce security on the categories for all the categories are displayed.

    You apply security on the process via the /AdminUI (Service-> Application and Services-> service-> Security tab... click the Add Principal button at the bottom.  Only users/groups in this list can invoke (start) process and the services is to allow a user to call will be displayed under the Category node.

  • IOM - e-mail notification to a specific user, based on a dynamic State

    Hello, after creating the account in a particular target resource I need to send an email to a specific user based on the location of the user (for example area admin).

    In the notification of tasks tab, I see only "assignee", "Applicant", "User", "User Manager"? How can I reach the requirement specified above?

    Before asking this question, I tried to search the Forum of all previous posts related to it. But I could not find. Maybe I wasn't with the right keywords.

    Any help is appreciated. Thanks in advance.

    You will need an adapter to send the email, then you can send to any user, you want a custom code. Create a new task and it trigger the response of completion code. You can use the following APIs:

    sendMail tcEmailNotificationUtil = new tcEmailNotificationUtil (ioDatabase);
    sendMail.setBody ("your body here Type or use a string variable");
    sendMail.setSubject ("Type your topic here or use a string variable");
    sendMail.setFromAddress ("[email protected]");
    sendMail.sendEmail ("[email protected]");

    Just fill the rooms above with the necessary information.

    -Kevin

  • Prevent a user from changing

    Hello

    : Is thr possible to prevent a user to perform the DML operation

    Hello

    LOCK TABLE tablename in EXCLUSIVE MODE;

    We can use this to prevent a user from some time handling

    If you want that the user don't not to access permanently to revoke the privileges of this user.

  • The index of the partition.

    Oracle 10.2.0.2

    Hello people,

    I have a partition table and index on this partition. We moved all the partitions of tablespace index A to B. We dropped A tablespace, now, when I am interested in the index structure it showing me all the partition on table space B, but the index is still pointing to A partition. And because of that during the break-up of this table, we get below error.

    ORA-00959: tablespace 'A' does not exist. What I have to spend this index tablespace diff too?

    Hello..

    I don't think that something will be disabled because of it. You can also refer to Doc ID: Note: 408021.1

    Anand

  • Table partitioning on table MTL_SYSTEM_ITEMS_B?

    Hello

    We have an obligation to apply the partitioning on table MTL_SYSTEM_ITEMS_B. main reason is to improve the performance of queries.

    We planned to do with ORGANIZATION_ID column as the partition key.

    If anyone can share with your thoughts, what method of partition is good at this table to improve performance.

    Thank you

    Hello

    Please see these links/docs.

    Using partitioning of database with the E-Business Suite
    http://blogs.Oracle.com/stevenChan/2006/09/using_database_partitioning_wi.html

    Updated whitepaper: database, partitioning for E-Business Suite
    http://blogs.Oracle.com/stevenChan/2009/04/whitepaper_update_database_partitioning_for_ebusin.html

    Note: 554539.1 - database using partitioning with Oracle E-Business Suite

    Thank you
    Hussein

Maybe you are looking for