| Lesson 3 | Before Creating a User |
| Objective | Decide on Attributes for a new user in Oracle 23ai |
Creating a database user in Oracle 23ai is not merely an administrative formality. It is a design decision that affects security, storage management, auditing, access control, and long-term maintainability. A DBA should decide on user attributes before issuing CREATE USER so that each account aligns with the person’s job function, application purpose, and operational boundaries inside the database.
In a well-managed Oracle environment, a user account should reflect the principle of least privilege. That means the account receives only the privileges, quotas, tablespaces, and authentication settings required for its intended workload. This planning step is especially important in modern environments where Oracle Enterprise Manager, SQL*Plus, automation scripts, Unified Auditing, and role-based administration work together to support governance and compliance.
Before creating a new account, the DBA should answer several questions:
Thinking through these attributes first helps prevent overprivileged accounts, uncontrolled storage growth, and weak operational discipline. It also makes later administration easier because the account was designed correctly from the outset rather than patched after problems appear.
When preparing to create a user in Oracle 23ai, the DBA should evaluate the following attributes carefully:
HR_APP, while an individual developer account might use a person-based identifier.TEMP.Before the CREATE USER statement is executed, the DBA should identify the following prerequisites:
These prerequisites reflect an important DBA mindset: user creation is not only about enabling access, but also about constraining, documenting, and supervising that access.
In Oracle 23ai, user management should be viewed as part of a broader security architecture. The account definition itself is only one layer. The profile establishes password and session behavior, roles aggregate privileges into manageable sets, and Unified Auditing records important activity for review and compliance.
For example, a developer may need to connect, create tables, create views, and test PL/SQL code in a non-production environment. That does not mean the same account should automatically receive sweeping system privileges in production. A better approach is to assign narrowly scoped roles appropriate to each environment and audit the usage of sensitive privileges.
This also illustrates why the DBA should distinguish among different account types:
When these distinctions are ignored, organizations often end up with shared accounts, excessive privileges, and weak audit trails. Deciding attributes up front helps prevent those design flaws.
Although Oracle Enterprise Manager provides a graphical interface, every DBA should understand the SQL syntax behind the operation. A simplified example is shown below:
CREATE USER nick
IDENTIFIED BY "Strong_Temporary_Password1"
DEFAULT TABLESPACE users
TEMPORARY TABLESPACE temp
PROFILE default
QUOTA 10M ON users;
After the account exists, the DBA grants the needed privileges:
GRANT CREATE SESSION TO nick;
GRANT CREATE TABLE, CREATE VIEW TO nick;
GRANT role_name TO nick;
GRANT SELECT, INSERT, UPDATE ON hr.employees TO nick;
In practice, many DBAs prefer granting carefully designed roles rather than many direct privileges, because roles simplify administration, standardize entitlements, and reduce configuration drift.
Suppose you want to create a user account for an application developer named Nick. Because Nick is a developer, the account should support object creation and testing in the correct environment, but it should still follow Oracle security standards.
Before creating Nick’s account, the DBA decides the following:
USERS tablespace.TEMP tablespace.DEFAULT profile, unless the organization uses a custom developer profile.If you use Oracle Enterprise Manager to create the account, the workflow resembles the following:
NICK in the Name field.DEFAULT or a custom profile defined for developers.USERS, unless the environment uses a different application tablespace strategy.TEMP.10M ON USERS.Notice that the real design work happens before the final click. The interface only captures the choices the DBA has already made.
Several best practices help modernize user creation in Oracle 23ai:
DBA, CREATE ANY TABLE, or broad object access should be assigned only with strong justification.These practices support both relational discipline and operational security. A database is not only a storage engine; it is a controlled multi-user system where the quality of account design affects every other layer of administration.
Deciding on user attributes also prepares the DBA for later GRANT and REVOKE operations. If the account is designed correctly, privilege management becomes predictable. If the account is created vaguely, privilege sprawl tends to follow.
For example, a reporting user may only need CREATE SESSION and SELECT on a controlled set of views. A developer may need object creation privileges in a sandbox environment but not in production. An application runtime account may need execute rights on PL/SQL packages but no interactive schema design privileges at all.
In other words, CREATE USER is the foundation, while GRANT and REVOKE refine the access model over time. That foundation should be intentional.
Before creating a user in Oracle 23ai, the DBA should decide far more than a name and password. The account’s profile, authentication method, tablespaces, quota, status, auditing expectations, and privilege model all need to be aligned with the account’s purpose. This planning protects the database, improves maintainability, and supports compliance.
A well-designed user account reflects the user’s real role, consumes only the storage it needs, operates under the correct password and resource controls, and can be monitored through Oracle’s auditing framework. Whether the user is a developer, analyst, application schema, or administrator, careful attribute selection before user creation is one of the simplest and most effective DBA practices in Oracle Database Administration.