Session 5

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 31

Database Security

and
User Management
Objectives
To discuss database security principles (AAA)
To create and manage database user accounts:
 Authenticate users
 Assign default storage areas (tablespaces)

 To create and manage profiles:


 Implement standard password security features
 Control resource usage by users

To discuss authorisation implementation:


 How to grant and revoke privileges
 How to create and manage roles

3
Database Security Overview
Fundamental data security requirements:
 Confidentiality
 Integrity
 Availability

Major aspects of database security:


 Authentication
 Authorisation
 Auditing

5
Authentication
Authentication verifies the user’s identity
Authentication methods can be classified as:
 something you know (password)
 something you are (biometric)
 something you have (smart card)
Basic authentication
 Database user identified by a password
 Database user identified by the operating system
Strong authentication
 Confirming the identity of the user with something
other than a password: smart cards, biometrics,
certificates, etc.
6
Authorisation
Authorisation includes primarily two
processes:
 Giving users certain permissions to access, process,
or alter data
 Applying varying limitations on user access or
actions
The limitations placed on (or removed from)
users can apply to
 objects such as schemas, tables, or rows
 to resources such as time (CPU, connect, or idle
times)

7
Auditing
Auditing
 is the monitoring and recording of selected user
database actions
 can be based on individual actions, such as the type of
SQL statement executed, or on combinations of data
that can include the user name, application, time, and
so on
 can audit both successful and failed activities
 can be done as a high level monitoring as well as Fine-
grained auditing
● But auditing of any type increases the amount of work
that the database must do !
8
Database User Accounts

Each database user account


has:
 A unique username
 An authentication method
 A default tablespace
 A temporary tablespace
 A tablespace quota
 A user profile

9
Creating User in SQL*Plus
 Use CREATE USER SQL statement to create a database
user account
 To create a user, you must have the CREATE USER
system privilege
 Because it is a powerful privilege, a database
administrator or security administrator is usually the only
user who has the CREATE USER system privilege

Example:
SQL> CREATE USER jsmith IDENTIFIED BY pass4You
DEFAULT TABLESPACE USERS
TEMPORARY TABLESPACE TEMP
PROFILE clerk_profile;

10
Authenticating Users
Password
External
 This is authentication by a method outside the database
(operating system, biometrics, etc.)
Global
 Using LDAP services,
Oracle Internet Directory

11
Assigning a Default Tablespace to the User
Each user should have a default tablespace
 When user creates an object the database stores the
object in the default user's tablespace (unless DDL
command contains different tablespace)
 The default setting for the default tablespaces of all users
is set in the initialization parameter file
 At the creation of the database it might be set to SYSTEM
tablespace, but it is strongly recommended to change
default tablespace from SYSTEM to other tablespace, for
example USERS
 By separating the user data from the system data, you
reduce the likelihood of problems with the SYSTEM
tablespace, which can in some circumstances cause the
entire database to become nonfunctional

13
Assigning a Tablespace Quota to the User
By default, a user has no quota on any tablespace
in the database
Assigning a quota accomplishes the following:
 Users with privileges to create certain types of objects can
create those objects in the specified tablespace
 Oracle Database limits the amount of space that can be
allocated for storage of a user's objects within the specified
tablespace to the amount of the quota
 You can assign a user either individual quotas for a
specific amount of disk space in each tablespace or an
unlimited amount of disk space in all tablespaces
 Specific quotas prevent a user's objects from using too
much space in the database

14
Assigning a Temporary Tablespace to the User
DBA should assign each user a temporary
tablespace
When a user executes a SQL statement that requires
a temporary segment, the database stores the
segment in the temporary tablespace of the user
If DBA does not explicitly assign the user a
temporary tablespace, then the database assigns the
user the default temporary tablespace that was
specified:
 at database creation
 by an ALTER DATABASE statement at a later time

15
Profiles
A profile is a named set of resource limits and
password parameters that restrict database usage
and instance resources for a user.
Each user can have only one profile, and creating a
new one supersedes an earlier version.
Profiles are used to manage the resource limits of
related users.
DBA needs to create and manage user profiles only if
resource limits are a requirement of your database
security policy.

16
Creating profiles
 Syntax:
CREATE PROFILE profile_name
LIMIT { resource_parameters | password_parameters };

 resource_parameters:
 SESSIONS_PER_USER (the number of concurrent logins that can be made to the same user account)
 CONNECT_TIME (in minutes, the max duration of a session)
 IDLE_TIME (in minutes the maximum time a session can be idle)
 CPU_PER_CALL ( the CPU time in centiseconds that a session’s server process is allowed to
use to execute one SQL statement before the it forcibly terminated)
 etc.
 password_parameters:
 FAILED_LOGIN_ATTEMPTS
 PASSWORD_LOCK_TIME (the number of days an account will be locked after the specified
number of consecutive failed login attempts)
 PASSWORD_LIFE_TIME (the number of days before the password expires)
 PASSWORD_REUSE_TIME (the number of days before a password can be reused)
 PASSWORD_REUSE_MAX (the number of times a password can be reused)
 If either parameter is specified as UNLIMITED, then the user can never reuse a password
 If both parameters are set to UNLIMITED, then Oracle Database ignores both, and the user can
reuse any password at any time
17
Creating Profiles Examples
SQL> CREATE PROFILE app_prof
LIMIT
SESSIONS_PER_USER UNLIMITED
CPU_PER_SESSION UNLIMITED
CONNECT_TIME 45;

FAILED_LOGIN_ATTEMPTS 3
PASSWORD_LOCK_TIME 1
PASSWORD_LIFE_TIME 60
PASSWORD_REUSE_TIME 45
PASSWORD_REUSE_MAX 4

 The user with this profile:


 can have any number of concurrent sessions ; in a single session, the
user can consume an unlimited amount of CPU time; a single session
cannot last for more than 45 minutes
 will be locked after 3 failed login attempts; it will be locked for 1 day; the
password will expire in 60 days; the user has to wait for 45 days before
re-using the same password; the same password can be reused 4 times
18
Profile Enforcement
 Profiles can be assigned only to users and not to other
profiles
SQL> CREATE USER user1 IDENTIFIED BY passw1
PROFILE app_prof;

SQL> ALTER USER sh


PROFILE new_profile;
 Profile resource limits are enforced only when resource
limitation is enable for the database
 Limitation can be enabled
 using the RESOURCE_LIMIT initialization parameter (before
starting up the database )
 using the ALTER SYSTEM statement (while database is open )
SQL> ALTER SYSTEM SET RESOURCE_LIMIT=TRUE;
19
User Authorisation
Authorisation determines what types of objects,
privileges, and resources the user is permitted to
access or use.
The resources are limited by a profile attached to
the user.
Access to the objects and structures in the
database is controlled by setting an individual user
privileges, or collection of privileges – roles.

21
Privileges
There two types of privileges:
 System: Enables users to perform particular actions in
the database
 Usually corresponds to the permission to run DDL commands
 Object: Enables users to access and manipulate a
content of a specific object
 Usually corresponds to the permission to run DML commands

HR_DBA

Object privilege: System privilege:


Update ON employees Create session
22
Granting System Privileges

SQL> GRANT create session TO user123;

SQL> GRANT create table TO user123;

SQL> GRANT alter any sequence TO user456;

SQL> GRANT create table, create sequence, create view


TO user123, user456;

23
Granting System Privileges WITH ADMIN OPTION
WITH ADMIN OPTION

SYS HR_DBA scott

CREATE TABLE
region (id … CREATE TABLE
GRANT stats (id …
create table,
TO HR_DBA
WITH ADMIN OPTION; GRANT
create table
TO scott;

24
Revoking System Privileges
To revoke a system privilege, you must have been
granted the privilege with the ADMIN OPTION
You can revoke any privilege if you have the
GRANT ANY PRIVILEGE system privilege
 Syntax:
REVOKE { system_privilege | role | ALL PRIVILEGES }
FROM
{ user [ IDENTIFIED BY password ] | role | PUBLIC } ;

 Example:

SQL> REVOKE CREATE TABLE,DROP TABLE


FROM hr_user, oe_user;

25
Revoking System Privileges
SYS HR_DBA scott
GRANT GRANT
Users
WITH
ADMIN OPTION
GRANT GRANT Privileges

Objects

SYS HR_DBA scott


REVOKE Users

GRANT GRANT Privileges

Objects
26
Understanding Object Privileges
Object privileges vary from object to object
An owner has all the privileges on the object
An owner can grant specific privileges on the
owner’s object to another user or to PUBLIC
Object privileges cannot be granted along with
system privileges and roles in the
same GRANT statement
Some object privileges are only applicable to
certain types of objects
 For example, the DELETE privilege only makes sense
with table or views, but not sequences
27
Granting Object Privileges
To grant object privileges you must specify the name of the
object as a part of the GRANT statement

SQL> GRANT SELECT ON employees TO user123;

SQL> GRANT SELECT, UPDATE ON employees TO user123;

SQL> GRANT SELECT ON employees TO user123;


SQL> GRANT SELECT ON departments TO user123;

SQL> GRANT UPDATE (location_id) ON departments


TO user123, mgr1;

28
Revoking Object Privileges
Syntax:

REVOKE {privilege [, privilege...]|ALL}


ON object
FROM {user[, user...]|role|PUBLIC}
[CASCADE CONSTRAINTS | FORCE];

Example:

SQL> REVOKE select, insert ON departments


FROM my_scott;

Revoke select succeeded.

29
Cascade Revoke
SYS HR_DBA scott
GRANT GRANT
Users
WITH
GRANT OPTION
Privileges GRANT GRANT

Objects

SYS HR_DBA scott


REVOKE
Users

GRANT
... GRANT
Privileges

Objects
30
Roles

Users

Manager Role

1 2 3 4 Privileges 1 2 3 4

Allocating privileges Allocating privileges


without a role with a role

32
About Roles
The role is a named group of related privileges
 The role simplifies the managing multiple system and
object privileges
You create roles, grant system and object
privileges to the roles, and then grant roles to
users
 You can also grant roles to other roles
 Unlike schema objects, roles are not contained in
any schema

33
Managing Roles
Creating Roles SQL> CREATE ROLE clerk;

SQL> CREATE ROLE manager;

Assigning privileges to a role


SQL> GRANT CREATE TABLE,CREATE VIEW TO manager;
SQL> GRANT SELECT, UPDATE ON orders TO clerk;

Assigning roles to users


SQL> GRANT manager TO user123;
SQL> GRANT clerk TO user123, user555, user767, user999;

Assigning roles to roles SQL> GRANT clerk TO manager;

 Question: What privileges role manager will have in this case?


34
Oracle Database Predefined Roles
Oracle Database has many predefined roles; the following
three are widely used:
 CONNECT (changed since 10g Release 2)
 Enables a user to connect to the database
 RESOURCE
 Enables a user to create, modify, and delete certain types of
schema objects in the schema associated with that user
 This role grants set of the system privileges (CREATE TABLE ,
CREATE PROCEDURE, etc)
 DBA
 Enables a user to perform most administrative functions,
including creating users and granting privileges; creating and
granting roles; creating, modifying, and deleting schema
objects in any schema; and more, but does not include the
privileges to start or shut down the database instance
35
QUESTIONS

36

Vous aimerez peut-être aussi