Skip to main content

Welcome to DBA Master – Database Tips, Tricks, and Tutorials

Welcome to DBA Master ! This blog is dedicated to all things related to database administration , SQL optimization , and performance tuning . Whether you're a beginner or a seasoned DBA, you'll find practical guides, troubleshooting tips, and real-world tutorials to help you work smarter with data. What to Expect: SQL performance tuning tips Indexing strategies Backup and recovery best practices High availability and replication techniques Database creation, configuration, and setup Monitoring queries and scripts for proactive performance management Migration guides across different database platforms Security essentials and best practices Recommended tools for DBAs Real-world error fixes and how to solve them Stay tuned — exciting content is coming soon. Feel free to bookmark and share: www.dbamaster.com ! Thanks for visiting!

Oracle User, Role and Profile Management

A user in Oracle represents an account that can log into the database and execute SQL queries. Each user has its own schema where objects like tables, indexes, views, and stored procedures can be created.

Aspect

User

Schema

Definition

An Oracle account for database access.

A collection of database objects owned by a user.

Purpose

Controls access to the database and its operations.

Stores database objects (tables, views, procedures).

Authentication

Requires a username and password to log in.

No direct authentication (accessed through the user).

Relation

A user owns exactly one schema.

A schema is tied to exactly one user.

 Each Database User Account has:

  • A Unique Username
  • An Authentication Method
  • A default tablespace
  • A temporary tablespace
  • A user profile (password restriction)
  • An initial Consumer Group – oracle resource manager
  • An account status – open, logged or expired

Default Admin User Accounts:

  • SYS         (MASTER OF ALL USERS-ALL PRIVILEGES-STARTUP-SHUTDOWN-BACKUP-RECOVERY-DBUPGRADE)
  • SYSTEM                (similar to sys- con’t perform backup,recovery and upgrade)
  • DBSNMP              (used by Oracle Enterprise Manager tool (GUI)to monitor and manage the db)-tablespace,backup – all db operations)
  • SYSMAN               (Oracle Enterprise Manager-perform dba task tablespace,backup)

select username,account_status from dba_users;

create user muthu identified by muthu123;

create user muthu identified by muthu123 password expire;

create user muthu profile default identified by muthu123 default tablespace tbs1 temporary tablespace temptbs1 account unlock;

grant create session to muthu ;

grant connect, resource to muthu ;

alter user muthu identified by muthu123;    --password reset

alter user muthu account lock;

alter user muthu account unlock;

alter user muthu quota 5m on tbs1;

drop user muthu cascade;

Privileges:

  • System privilege
  • Object privilege

System privilege:

Example: create table, create tablespace, create view, create session, unlimited tablespace.

Any – means permissions to all users.

System Privilege

Description

CREATE SESSION

Allows a user to connect to the database.

ALTER SESSION

Allows a user to alter session-level settings.

CREATE TABLE

Allows a user to create tables in their own schema.

CREATE ANY TABLE

Allows a user to create tables in any schema.

ALTER ANY TABLE

Allows a user to alter tables in any schema.

DROP ANY TABLE

Allows a user to drop tables in any schema.

SELECT ANY TABLE

Allows a user to select data from any table in any schema.

INSERT ANY TABLE

Allows a user to insert data into any table in any schema.

UPDATE ANY TABLE

Allows a user to update data in any table in any schema.

DELETE ANY TABLE

Allows a user to delete data from any table in any schema.

CREATE VIEW

Allows a user to create views in their own schema.

CREATE ANY VIEW

Allows a user to create views in any schema.

ALTER ANY VIEW

Allows a user to alter views in any schema.

DROP ANY VIEW

Allows a user to drop views in any schema.

CREATE PROCEDURE

Allows a user to create procedures in their own schema.

CREATE ANY PROCEDURE

Allows a user to create procedures in any schema.

ALTER ANY PROCEDURE

Allows a user to alter procedures in any schema.

DROP ANY PROCEDURE

Allows a user to drop procedures in any schema.

EXECUTE ANY PROCEDURE

Allows a user to execute procedures in any schema.

CREATE TRIGGER

Allows a user to create triggers in their own schema.

CREATE ANY TRIGGER

Allows a user to create triggers in any schema.

ALTER ANY TRIGGER

Allows a user to alter triggers in any schema.

DROP ANY TRIGGER

Allows a user to drop triggers in any schema.

CREATE USER

Allows a user to create new database users.

ALTER USER

Allows a user to alter existing users.

DROP USER

Allows a user to drop existing users.

GRANT ANY ROLE

Allows a user to grant roles to other users or roles.

REVOKE ANY ROLE

Allows a user to revoke roles from other users or roles.

CREATE ROLE

Allows a user to create roles.

ALTER ROLE

Allows a user to alter roles.

DROP ROLE

Allows a user to drop roles.

CREATE TABLESPACE

Allows a user to create new tablespaces.

ALTER TABLESPACE

Allows a user to alter existing tablespaces.

DROP TABLESPACE

Allows a user to drop tablespaces.

CREATE PROFILE

Allows a user to create new profiles.

ALTER PROFILE

Allows a user to alter existing profiles.

DROP PROFILE

Allows a user to drop profiles.

CREATE SYNONYM

Allows a user to create synonyms in their own schema.

CREATE ANY SYNONYM

Allows a user to create synonyms in any schema.

ALTER ANY SYNONYM

Allows a user to alter synonyms in any schema.

DROP ANY SYNONYM

Allows a user to drop synonyms in any schema.

CREATE MATERIALIZED VIEW

Allows a user to create materialized views in their own schema.

CREATE ANY MATERIALIZED VIEW

Allows a user to create materialized views in any schema.

ALTER ANY MATERIALIZED VIEW

Allows a user to alter materialized views in any schema.

DROP ANY MATERIALIZED VIEW

Allows a user to drop materialized views in any schema.

CREATE DATABASE LINK

Allows a user to create database links.

ALTER DATABASE LINK

Allows a user to alter database links.

DROP DATABASE LINK

Allows a user to drop database links.

CREATE VIEW

Allows a user to create views in their own schema.

CREATE ANY VIEW

Allows a user to create views in any schema.

ALTER ANY VIEW

Allows a user to alter views in any schema.

DROP ANY VIEW

Allows a user to drop views in any schema.

EXECUTE ANY PROCEDURE

Allows a user to execute any procedure in any schema.

Syntax:

grant <system_privilege> to <user_name>;

grant <system_privilege> to <user_name> with admin option;

revoke <system_privilege> from <user_name>;  --revoke only for user1 not applied other users

Object Privilege

Example: select, update, delete, alter, execute

Object Privilege

Description

SELECT

Allows a user to query (select) data from a table or view.

INSERT

Allows a user to insert data into a table or view.

UPDATE

Allows a user to update existing data in a table or view.

DELETE

Allows a user to delete data from a table or view.

REFERENCES

Allows a user to create a foreign key constraint that references a table's columns.

ALTER

Allows a user to alter the structure of a table or view (e.g., add or drop columns).

DROP

Allows a user to drop a table or view (i.e., delete the table or view).

EXECUTE

Allows a user to execute a stored procedure or function.

TRUNCATE

Allows a user to truncate (remove all rows from) a table.

CREATE

Allows a user to create new tables, views, or other objects.

ALTER ANY

Allows a user to alter any object of the specified type (e.g., ALTER ANY TABLE).

DROP ANY

Allows a user to drop any object of the specified type (e.g., DROP ANY TABLE).

INDEX

Allows a user to create an index on a table.

GRANT

Allows a user to grant specific object privileges to other users or roles.

DEBUG

Allows a user to debug a procedure or function.

Syntax:

grant <object_privilege> on <object> to <user_name>;

grant <object_privilege> on <object> to <user_name> with grant option;

grant <object_privilege> on <object> from <user_name>; //revoke the all user permission with cascade

Role:

A role in Oracle is a named group of privileges that can be assigned to users. This makes it easier to manage permissions, especially when dealing with many users.

create role role_name;

create role role_name identified by rol_name123;

drop role role_name;

grant Role_name to user_name;

revoke role_name from user_name;

Profile:

A profile is a set of resource limits and password management settings that can be applied to users. This helps in enforcing policies like password expiration, failed login attempts, and session resource usage.

1. Resource Parameters:

  • SESSIONS_PER_USER: Maximum number of concurrent sessions per user.
  • CPU_PER_SESSION: CPU time allowed per session (in hundredths of seconds).
  • CPU_PER_CALL: CPU time allowed per SQL call.
  • LOGICAL_READS_PER_SESSION: Maximum number of logical reads for a session.
  • LOGICAL_READS_PER_CALL: Maximum number of logical reads per SQL call.
  • CONNECT_TIME: Maximum time allowed for a user session (in minutes).
  • IDLE_TIME: Maximum time allowed for an idle session (in minutes).
  • PRIVATE_SGA Specify the amount of private space a session can allocate in the shared pool of the system global area.
  • COMPOSITE_LIMIT  Specify the total resource cost for a session, expressed in service units. Oracle Database calculates the total service units as a weighted sum of CPU_PER_SESSION, CONNECT_TIME, LOGICAL_READS_PER_SESSION, and PRIVATE_SGA.

 

2. Password Management Parameters:

  • PASSWORD_LIFE_TIME: Number of days a password is valid before it must be changed.
  • PASSWORD_GRACE_TIME: Number of days before a password expires when the user is warned to change it.
  • PASSWORD_REUSE_TIME: Number of days before a previously used password can be reused.
  • PASSWORD_REUSE_MAX: Maximum number of times a user can reuse the same password.
  • PASSWORD_VERIFY_FUNCTION: A PL/SQL function to enforce custom password complexity.
  • FAILED_LOGIN_ATTEMPTS: Maximum number of failed login attempts before the account is locked.
  • PASSWORD_LOCK_TIME: Number of days the account remains locked after reaching the maximum failed login attempts.
  • PASSWORD_VERIFY_FUNCTION in Oracle is a PL/SQL function used to enforce password complexity and security rules. This function allows administrators to define custom password rules, such as password length, content (letters, numbers, special characters), and other security policies.

 

Example:

CREATE PROFILE secure_profile
LIMIT
SESSIONS_PER_USER 3 
-- Maximum 3 concurrent sessions
CPU_PER_SESSION 3000  --3000 hundredths of a second CPU per session
CONNECT_TIME 60       -- 1-hour session limit
IDLE_TIME 10       -- 10 minutes idle time before session ends
FAILED_LOGIN_ATTEMPTS 5  --Maximum of 5 failed login attempts
PASSWORD_LIFE_TIME 90    -- Password expires in 90 days
PASSWORD_GRACE_TIME 10   --User warned 10 days before expiration
PASSWORD_REUSE_TIME 365  --Cannot reuse password for 1 year
PASSWORD_REUSE_MAX 3     -- Password can be reused after 3 changes
PASSWORD_VERIFY_FUNCTION ora12c_verify_function;  --Password complexity check function

Find the users default profile:

select username, profile from dba_users;
select username, profile from dba_users where username='MUTHU';
select * from dba_profiles;
select * from dba_profiles where profile='secure_profile';
OR 'DEFAULT'

Create user and assign the profile:

create user raju identified by raju321 profile secure_profile;

Assign the profile for existing user:

alter user siva profile secure_profile;

Alter the Profile:

alter profile secure_profile limit session_per_user 10;

Drop the Profile:

drop profile secure_profile cascade;

Comments

Popular posts from this blog

Oracle Database 19C Performance Tunning - PART 1

Advantages: 1. Improved Query Performance •    Optimized SQL execution plans lead to faster query response times. •    Reduces unnecessary full table scans and improves indexing strategies. •    Parallel execution tuning speeds up large data processing tasks. 2. Better Resource Utilization •    Efficient use of CPU, memory, disk I/O, and network resources. •    Reduces contention on Redo Logs, Undo Tablespaces, and Buffer Cache. •    Helps in load balancing across multiple instances in RAC (Real Application Clusters). 3. Increased System Scalability •    Ensures that the database can handle a growing number of users and transactions. •    Proper tuning allows scaling without degrading performance. •    Optimized parallel processing ensures better performance on multi-core servers. 4. Lower Infrastructure Costs •    Reduces the need for add...

Oracle RMAN Backup And Restore

RMAN: (Oracle 8) RMAN (Recovery Manager) is a utility provided by Oracle Database to perform backup, restore, and recovery operations. It is a command line tool. Features of RMAN in Oracle 19c Comprehensive Backup Capabilities: Full and incremental backups. Block-level backups for efficient data storage. Archived redo log backups. Fast Recovery Area (FRA) integration for centralized backup storage. Efficient Recovery Options: Point-in-time recovery (PITR). Complete and incomplete recovery. Flashback database capabilities for quick undo of changes. Multitenant Database Support: RMAN fully supports container databases (CDBs) and pluggable databases (PDBs). Provides flexibility to back up and recover individual PDBs or entire CDBs. Automatic Space Management: Manages disk space in the FRA. Automatically deletes obsolete backups and archived logs. Data Deduplication and Compression: Backup optimization through block-level deduplication. Built-in compression algorithms to reduce storage req...

Oracle 19c Database Software Installation in OEL8

 Pre-requisites for OS level:            Set the static IP Address     Disable the Firewall (systemctl stop firewalld & systemctl disable firewalld)     set SELINUX=permissive on /etc/selinux/config  ##Need to restart the server use init 6 Oracle Installation Pre-requisites Methods     Automatic Setup     Manual Setup      Automatic requisites Setup: (avoid step 1 to step 5): dnf install -y oracle-database-preinstall-19c Install the dependencies: curl -o oracle-database-preinstall-19c-1.0-2.el8.x86_64.rpm https://yum.oracle.com/repo/OracleLinux/OL8/appstream/x86_64/getPackage/oracle-database-preinstall-19c-1.0-2.el8.x86_64.rpm dnf -y localinstall oracle-database-preinstall-19c-1.0-2.el8.x86_64.rpm Manual Setup: step 1: Add the karenl parameters and values vi /etc/sysctl.conf     fs.file-max = 6815744 kernel.sem = 250 32000 100 128 kernel....