Essential SQL Commands for User and Privilege Management

Classified in Technology

Written on in English with a size of 2.96 KB

Creating a User

SQL Command

CREATE USER <nombre_usuario> IDENTIFIED BY <password>;

Granting Privileges

SQL Command

GRANT CONNECT TO <nombre_usuario>;

Creating a Profile

SQL Command

CREATE PROFILE profile_name LIMIT limit(s) range;

Limits

  • SESSIONS_PER_USER
  • CPU_PER_SESSION
  • CPU_PER_CALL
  • CONNECT_TIME
  • IDLE_TIME
  • LOGICAL_READS_PER_SESSION
  • LOGICAL_READS_PER_CALL
  • COMPOSITE_LIMIT
  • PRIVATE_SGA

Range Options

  • UNLIMITED
  • DEFAULT
  • Integer value

Example Profile Creation

CREATE PROFILE MyProfile LIMIT PRIVATE_SGA 50K;

CREATE PROFILE app_user LIMIT

  • SESSIONS_PER_USER UNLIMITED
  • CPU_PER_SESSION UNLIMITED
  • CPU_PER_CALL 3000
  • CONNECT_TIME 45
  • LOGICAL_READS_PER_SESSION DEFAULT
  • LOGICAL_READS_PER_CALL 1000
  • PRIVATE_SGA 15K
  • COMPOSITE_LIMIT 5000000;

Creating Additional Profiles

CREATE PROFILE app_user2 LIMIT

  • FAILED_LOGIN_ATTEMPTS 5
  • PASSWORD_LIFE_TIME 60
  • PASSWORD_REUSE_TIME 60
  • PASSWORD_REUSE_MAX 5
  • PASSWORD_VERIFY_FUNCTION verify_function
  • PASSWORD_LOCK_TIME 1/24
  • PASSWORD_GRACE_TIME 10;

Creating a Schema

SQL Command

CREATE USER <esq001> IDENTIFIED BY a1234 PROFILE <nombre_profile>;

Granting Privileges to Schema

GRANT RESOURCE, CONNECT TO <esq001>;

Creating a Tablespace for Auditing

Deploying Audit Data

SHOW PARAMETER AUDIT;

Activating Auditing

ALTER SYSTEM SET audit_trail=db,extended SCOPE=SPFILE;

Creating a User for Testing

SQL Command

CREATE USER audit_test IDENTIFIED BY password

  • DEFAULT TABLESPACE users
  • TEMPORARY TABLESPACE temp
  • QUOTA UNLIMITED ON users;

GRANT CONNECT TO audit_test;

GRANT CREATE TABLE, CREATE PROCEDURE TO audit_test;

Activating Audit for the User

SQL Commands

  • AUDIT ALL BY audit_test BY ACCESS;
  • AUDIT SELECT TABLE, UPDATE TABLE, INSERT TABLE, DELETE TABLE BY audit_test BY ACCESS;
  • AUDIT EXECUTE PROCEDURE BY audit_test BY ACCESS;

Reviewing the Audit

SQL Command

SELECT db_user, extended_timestamp, object_schema, object_name, action

FROM v$xml_audit_trail

WHERE object_schema = 'AUDIT_TEST'

ORDER BY extended_timestamp;

Creating Roles

SQL Command

SELECT 'GRANT SELECT ON ' || owner || '.' || table_name || ' TO rol_sel_020;'

FROM dba_tables

WHERE owner = 'HR';

Related entries: