Grant select on Tables

Friends

What would be the easiest way to give a user access to SELECT a table, but excluding him a specific column?

TKS!

Hello KeenOnOracle

Yes. You can see the contents of the table in real-time in a view.

Docu to version 11.2

http://docs.Oracle.com/CD/E11882_01/server.112/e26088/statements_8004.htm#SQLRF01504

Best regards, David

Tags: Database

Similar Questions

  • Syntax of GRANT: grant SELECT on table privileges to a user on a remote database

    Hello
    I have two databases: DEV1 and DEV2. Dev1 is my source database and DEV2 is the target database. There is a table in the diagram A on Dev1. I created a DBLINK PUBLIC 'TESTDBLINK' in the diagram B on DEV2 that connects to figure A on DEV1.

    Machine of Table for the database schema
    DEV1 AN EMP 192.168.210.10

    Database Machine Lik database schema
    DEV2 B TESTDBLINK 192.168.210.11

    How to SELECT on the schema Table EMP (DEV1) diagram b the DEV2 privileges? What is the syntax?


    Sign up for example in the form of scheme A on DEV 1

    SQL > GRANT SELECT ON EMP to? * *

    Thanks for your contributions
    Harry

    Do not give this table in diagram A diagram B.

    Inside the diagram B, you can just issue a select statement as follows:

    select *
    from table@db-link-to-A
    

    Oracle connects to the remote instance by using the credentials of the scheme A, and since A is the owner of this table, Oracle can already access the table.

  • grant on the tables

    Hello

    I created a schema and select granted the privileges on the other tables in the schema.
    but the scheme may select all tables in other schemas, how to access the other tables in the schema:

    I HAV created the user, select granted privileges on the tables in the diagram B
    BT can select all tables of B?

    WHY?

    Because either

    (A) has been granted to another ROLE that allows him to query ANY table
    (b) has been granted the privilege to CHOOSE ANY TABLE
    (c) ' PUBLIC' has been granted SELECT on "table B

    Hemant K Collette

  • How to remove grant select to one user, if this table contains public subsidies.

    Hi all

    Owner of the table gave all access to a table to the public

    for example

    >

    grant all on table1  to public;
    

    But now for a user "user1" if we remove select grant

     revoke   select  on table1 from user1;
    

    I get the error ORA-01927: cannot REVOKE privileges you did not

    OK if I revoke all access to "user1."

    revoke   all  on table1 from user1;
    

    I get Revoke succeeded.

    But always in the connection of the User1, I can select data from table1.

    Why?

    Is it because I gave all subsidies to the public?

    Above scenario must revoke the access of a user to a table that has all government subsidies.

    Yes, it's because SELECT on the table access has been granted to the PUBLIC.  The user still has the option to SELECT the table after you have removed the direct subsidies because they can always access privileges granted by the PUBLIC.

    If you want all users to have access to the table, you shouldn't be granting access to the PUBLIC in the first place.  Create a new role, grant SELECT on the table for this new role and assign this role to all users need.

    If for any reason, you're stuck with the issuance to the PUBLIC, I suppose you could create a policy from the CAE on the table that prevents the user to see all the data.  But it's a lot more work to get grants of privilege correct in the first place.

    Justin

  • Access grant select on all tables in a diagram to another diagram

    Hi all

    I can grant select access on the tables of a schema (SAY USER1) to another (SAY USER2) by giving him a role and in turn grant this role to another scheme as below:

    FOR x IN (SELECT * from user_tables)
    LOOP
    RUN IMMEDIATELY "SELECT WE GRANT | x.table_name | "To < < role1 > > ';
    END LOOP;

    Role1 Grant User2;

    but my question is that suppose I create another table say "TEMP_TAB" in the scheme of USER1 after the execution of the block above user2 will be able to access the table TEMP_TAB. My guess is certainly not. If I'm wrong, I want a way to grant select on a table in the schema of user1 immediately as and when it is created to User2.

    Please suggest a solution.

    Thank you and best regards,
    Vipin Kumar Rai

    993280 wrote:
    Knani,

    but in this case the User2 can choose any table in any schema. I want only USER2 for the right to select for only User1 tables.

    Thank you
    Vipin

    Oh sorry. Misinterpreted your post. What you did is the right way to do it. You must add the select role privilege whenever you create a new table. There is no "SELECT the TABLE all THE" specific to a type of data user privilege.

  • GRANT SELECT on a table to the user / role changes for the tab last_DDL

    Hello

    Is grant select (or any private object) to the user/role a DDL statement?

    GRANT SELECT on a table to the user / role changes the last_DDL to the table.
    1 > is this expected behavior?
    2 > no way in which we can grant select on a table by another user, without changing the DDL? (for example create view).


    The test is performed:

    Prior to the issuance:


    OBJECT_NAME CREATED TIMESTAMP LAST_DDL_TIME OWNER
    ------- ---------------------- ---------- ------------- --------------------
    AR HZ_CUSTOMER_PROFILES 8 MAY 00 13 MARCH 13 2003-06 - 26:12:41:29



    Grant statement:
    GRANT SELECT ON "AR". "' HZ_CUSTOMER_PROFILES ' TO 'AR_VIEW ';

    Note: AR_VIEW is a role, I tried granting also directly to the user.


    After the grant:

    OBJECT_NAME CREATED TIMESTAMP LAST_DDL_TIME OWNER
    ------- ---------------------- ---------- ------------- --------------------
    AR HZ_CUSTOMER_PROFILES 8 MAY 00 21 MARCH 13 2003-06 - 26:12:41:29



    Old thread, discuss whether Grant is DDL or not, but no documented conclusions.
    ( Re: Grant, revoke is DDL and DCL? )

    Please help in the assessment above.

    -Best regards,.
    Mani

    It's the DOF.

    After all, this isn't DML, it implicitly committed and you cannot use it directly in PL/SQL: features of DDL. :-)

  • Grant select privilege on the table column

    Hello
    I think that it is not possible to give the right to select level of column in a table.

    by example-grant select (col1, col2) on table1 to User1;

    Can anyone suggest what might be the way to achieve (apart from creating a view on the table).

    Hi, Anit,

    Anit says:
    Hi Frank,.
    Thanks for the reply. Nothing bad to see.

    Then use a notice. It is simpler and more robust.

    As that I knew WHAT EVP is used for the column data hide with a null value or other values. do not hide the entire column of the selection operation. Please correct me if I'm wrong.

    Maksing the column with a null value or another value is hide the column.
    Do what you should always do whenever you have a question. Post some sample data (CREATE TABLE and INSERT statements) and the results desired from these data. In this case, after an authorized user (that is, a user with all privileges) must get results and results that a user with lesser forge privileges.

    A view (or a copy of the table, as a materialized view) is the only way I know to prevent users to know that there is a column (for example) called credit_card_num.
    Use row-level security, you can return NULL when users not allowed to reference credit_card_num, or you can trigger an error if they try to refer to this column.

  • How to prevent a user not to access a table of perticular? This user has select any table privilege. Please help me solve this problem.

    Hello

    How to prevent a user not to access a table special (xxx)?

    This user has SELECT a TABLE ALL privilege. I need to restrict to only not for access xxx to the table, but this table is not existed in its own schema.

    But there is access able as select * from schema.table;

    How can I revoke this privilege.

    Please help me solve this problem.

    Thank you

    Lacombe

    1623609 wrote:

    How can I select privilege on specific tables at the same time?

    I want to create a new user and grants the right to select for tables, except a table (xxxx).

    It will be possible without the keystone of the database?

    One way, in several sql

    coil doit.sql

    Select ' grant select on ' | owner: '. ' || table_name |' to someuser. »

    from dba_tables

    where

    spool off

    Then sanity check "doit.sql" and execute it.

  • Select any table except a few tables

    Database 11g:

    --------------------

    I would like to give a right to select user on all the tables, except in a few tables.  I thought to give "Select any table", but this does not also some paintings, should not access.

    2nd way is to go... one by one, select wise schema and grant privileges using script.  But it's a lot of time because we have the very large number of tables.

    Is there another way by which we can accomplish this easily.

    You must grant select to each table. Please do not choose any table - which is almost never appropriate.

    If it's so hard, just write a query like:

    Select "grant select on" | table_name | "from some_user '.

    from user_tables

    where table_name not in ('FOO', 'BAR', "Etc.")

    and reel the results to a file.

    If it is necessary, consider granting privileges to a role and then assign this role to a user - will make it easier to manage if you ever have to do the same for other users.

  • Grant 'select only "on the basis of data

    Hello

    10.2.0.2 Dim.

    I want to give a user with "Select any object in the database"

    Thank you
    KSG

    >
    I am also finding an alternative path to the query below. (since there are more than 100 patterns and n number of objects) ("grant select on any table of " is not a best choic)
    >
    You are the only person who can assess your security needs.

    But if you want to exercise a positive security measures do not TAKE SHORTCUTS. This means put in place restrictions known on well-known objects and not grant on a table or an object and any grants a single user or super role.

    Aman and others have already said a good security refers to the compartmentalization and a rigid hierarchy. The objective of the implementation process and standards is not to make developers work more easier or faster. Yes - do the work correctly on 100 patterns and a large number of objects in each scheme will be tedious. You can automatically generate basic subsidies and coil them to scripts. But don't try to automate the entire process from beginning to end. That will leave large enough for a bus through security holes.

    Create a hierarchy in the sense of

    1. a schema at a time
    a. purpose of subsidies - for tables, views, procedures, etc. to a role. Best is to use a separate role for each type of object
    2 grant the role of schema for users who need

    Build small pieces manageable and controllable. Then combine these pieces into a top-level component. Not just make a huge mess of subsidies.

  • Problem with "select * from table" for dynamic IN the list

    I have a 'for loop' based a query that does not work. The query is supposed to return the name of the table, the data type and the name of the column in the columns poses a number of name filters. The problem I have is when I run the query into a TOAD with:

    schema_list value SCOTT, MED and the clause of 'in' as ' to (select * from table (DATAPUMP_UTIL.in_list_varchar2 (:schema_list))))»

    The query returns the expected lines.

    When I have it in my code as shown below it returns no rows. I don't know what hurts me, but any help would be great! I'm on Oracle 11.1.0.6.0.
    PROCEDURE export_schema_ondemand (schema_list VARCHAR2, encrypt_file NUMBER default 0, mask_sensitive_data NUMBER default 0) IS  
        ...
        schema_list_t := my_package.in_list_varchar2(schema_list);
        ... 
        for c1 in
           (
            with ok_to_mask as (
            select 
                owner,
                table_name, 
                column_name
            from   
               all_tab_columns
            where
                owner in (select * from table(schema_list_t))
            minus
            (SELECT 
                c.owner,
                p.table_name,
                cc.column_name
            FROM 
                all_cons_columns cc, 
                all_constraints p,
                all_constraints c
            WHERE 
                c.owner in (select * from table(schema_list_t))
                c.constraint_type = 'R'
                AND p.owner = c.r_owner
                AND p.constraint_name = c.r_constraint_name
                AND cc.owner = c.owner
                AND cc.constraint_name = c.constraint_name
                AND cc.table_name = c.table_name
            UNION ALL
            SELECT 
                c.owner,
                cc.table_name,
                cc.column_name
            FROM 
                all_cons_columns cc,
                all_constraints p,
                all_constraints c
            WHERE
                p.owner in (select * from table(schema_list_t))
                AND p.constraint_type in ('P','U')
                AND c.r_owner = p.owner
                AND c.r_constraint_name = p.constraint_name
                AND c.constraint_type = 'R'
                AND cc.owner = c.owner
                AND cc.constraint_name = c.constraint_name
                AND cc.table_name = c.table_name))
            select 
                atc.table_name as mask_tab, 
                atc.column_name as mask_col, 
                atc.data_type as mask_type
            from   
                all_tab_columns atc,
                ok_to_mask otm
            where
                atc.owner = otm.owner
                and atc.table_name = otm.table_name
                and atc.column_name = otm.column_name
                and atc.owner in (select * from table(schema_list_t))
                and 
                (
                atc.column_name like '%LAST%NAME%'
                or atc.column_name like '%FIRST%NAME%'
                or atc.column_name like '%NAME_LAST%'
                or  atc.column_name like '%NAME_FIRST%'
                or  atc.column_name like '%ENAME%'
                or atc.column_name like '%SSN%'
                or atc.column_name like '%DOB%'
                or atc.column_name like '%BIRTH%'
                )
                and atc.column_name not like '%PHYSICIAN_%'
                and atc.column_name not like '%DR_%'
                and atc.column_name not like '%PROVIDER_%'
                and atc.column_name not like 'PRESCRIBER_%'     
           )
          loop
             ...
    
    FUNCTION in_list_varchar2 (p_in_list  IN  VARCHAR2)  RETURN VARCHAR2_TT is
    
        l_tab   VARCHAR2_TT := VARCHAR2_TT();
        l_text  VARCHAR2(32767) := p_in_list || ',';
        l_idx   NUMBER;
            
    BEGIN
        LOOP l_idx := INSTR(l_text, ',');
            EXIT WHEN NVL(l_idx, 0) = 0;
            l_tab.extend;
            l_tab(l_tab.last) := TRIM(SUBSTR(l_text, 1, l_idx - 1));
            l_text := SUBSTR(l_text, l_idx + 1);
        END LOOP;
    
        RETURN l_tab;
            
    END in_list_varchar2;
    Published by: BluShadow on June 29, 2011 16:11
    addition of {noformat}
    {noformat} tags.  PLEASE READ {message:id=9360002} TO LEARN TO DO THIS YOURSELF.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    

    Hello

    If you have a query that works well when you launch it directly, and that breaks down when you start with a procedure, this can be a problem of privileges.

    Points of view ALL_ * shows only the objects you have access, but using a procedure, privileges must be granted directly to the user and not with a role.

    You should check the SELECT privileges to your user through roles and give them directly to the user.

    Hope this will help.

    Sylvie

  • Grant select any view privilege

    I want to grant a privilege to SELECT ANY VIEW user but not GRANT SELECT the ENTIRE TABLE. How can I make...

    Extract the query below and run it.

    Select ' grant select on ' | OWNER | '.' || view_name | « à » || ';' from dba_views;

  • Grant on a table but do not see the TRIGGER

    I created a new user 10.2.0.4 on windows

    I have granted select and update on a couple of other users on the database table.

    My new user can see the table and the data but not the triggers on the table?

    What is the privilege of seeing these triggers?

    Give permission to the user to view the dba_triggers.

    Grant select on dba_triggers to abc;

    Concerning

  • grant on the tables of a user

    Hi all

    I have an a_master of the master user, I have two users test1 and test2.

    a_master has 10 tables, and I got select on all these paintings to test1 and test2.
    ex:-grant select on table1 to test1;
    Grant select on table1 to test2;

    Test1 and test2 can create views on the tables of a_master.

    But if you try to assign a select on a view created by test1 (in the schema test1) on a_master to test2 tables,
    ex:-create view test_view as select a_master.table1-> created view name

    Grant select on test_view to test2; -> ERROR INSUFFICIENT PRIVILEGES


    a solution for this is to change my return and grant of a_master as
    Grant select on a_master.table1 to test1 with grant option;

    but this means test1 may grant select this option for any other user as well, which is a problem for me.

    is it possible that test2 user can just see the views created by test1 without renouncing the option "with grant option.

    any suggestions are appreciated.

    Kind regards

    Published by: user10243788 on February 1st, 2010 05:39

    user10243788 wrote:
    It is possible that the user test2 can simply select the views created by test1, I don't want to do "with grant option" test1 due to database security problems.

    This is possible only if the views created by test1 based objects belonged to test1.

  • Grant Select on sys.dba_role_priv to the user; error

    version 10204
    It's the user's request: Add: select sys.dba_role_priv to: ROLE vas_user;

    I was just wondering what I'm doing wrong? How to fix?

    SQL > grant Select on sys.dba_role_priv to vas_user;
    Grant Select on sys.dba_role_priv to vas_user
    *
    ERROR on line 1:
    ORA-00942: table or view does not exist

    I was just wondering what I'm doing wrong?

    incorrect spelling

    How to fix?

    Use the correct name

    SQL> desc dba_role_priv
    ERROR:
    ORA-04043: object dba_role_priv does not exist
    
    SQL> desc dba_role_privs
     Name                                                       Null?    Type
     ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ------ ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
     GRANTEE                                                   VARCHAR2(30)
     GRANTED_ROLE                                                  NOT NULL VARCHAR2(30)
     ADMIN_OPTION                                                   VARCHAR2(3)
     DEFAULT_ROLE                                                   VARCHAR2(3)
    

Maybe you are looking for