SQLServer 4. téma DBMS védelem konfiguráció Védelmi struktúra -szintek: - mit tudsz -jelszó - mid van -kártya - ki vagy -bimetria - Authentikáció - Authorizáció - Audit Védelmi modellek - DAC - MAC 1
- Hozzáférés mátrix - szubjektum - objektum - művelet - Keretrendszer - centralizált - La Padulla elv Védelmi modell DAC MAC Egységek: - csoportok - szerepkörök -Security - level - area Védelmi struktúra szerver USER_1 LOGIN USER_2 ROLE jog ROLE jog jog jog 2
Service jogkörei Lehetőleg ne az OS rendszer adminisztrátori csoportba tegyük Minden szolgáltatáshoz külön OS login LOGIN adatok beállítása Nyilvántartási módok: - WINDOWS - MIXED LOGIN létrehozása: CREATE LOGIN nev FROM WINDOWS CREATE LOGIN nev WITH PASSWORD=pwd MUST_CHANGE = m CHECK_EXPIRATION=m CHECK_POLICY=m 3
Login adatok kezelése LOGIN blokkolása, engedélyezés: ALTER LOGIN login DISABLE ALTER LOGIN login ENABLE LOGIN bejelentkezés kezelése: GRANT CONNECT TO login DENY CONNECT TO login LOGIN módosítás: ALTER LOGIN nev WITH PASSWORD DROP LOGIN nev LOGIN módok Windows mód előnyei: - megbízhatóbb ellenőrzés - szakértőbb csoport kezelheti - csoportosíthatók (az SA login is letiltásra kerül) - a jelszó nem megy át a hálón Mixed mód előnyei: - rugalmasabb szereposztás - nem Windows kliens eléréshez használható 4
Jelszó ellenőrzés DES működési mechanizmusa - blokk orientált - egykulcsos - műveleti blokkok - XOR, permutáció - műveleti egységek - S-BOX 5
Credentials Egy külső szolgáltatás eléréséhez szükséges jogosultságok együttese (pl. név, jelszó) Login-hoz rendelhető CREATE CREDENTIAL sqlusers WITH IDENTITY = 'machinesqlusers', SECRET =..) go CREATE LOGIN mary WITH PASSWORD = 'mary' ALTER LOGIN mary WITH CREDENTIAL = sqlusers Proxy Az SQLAgent esetében használatos Célja: alkalmazások összekötése a Credentials-szal 6
DB felhasználók USER: egy adatbázishoz kötött Létrehozás: CREATE USER unev FOR LOGIN nev ALTER USER unev DROP USER unev A default USER: GUEST Jogosultság megadása: GRANT jog TO user REVOKE jog FROM user DENY jog TO user Roles (szerepkörök) Jogosultságok halmaza. Szerver szintű Adatbázis szintű Létrehozása: CREATE ROLE nnn Jogosultság felvitele GRANT jog TO szerepkör Felhasználó kijelölése: EXECUTE sp_addrolemember role, user 7
Roles (szerepkörök) Server szintűek Sysadmin Serveradmin Setupadmin Securityadmin Processadmin Dbcreator Diskadmin Bulkadmin DBA Konfiguráció Kapcsolt szerverek kezelése Védelem kezelése Alkalmazások, processzek CRATE ALTER DB Állományok kezelése BULK INSERT kezelése Roles (szerepkörök) DB szintűek Db_owner DB_accessadmin DB_securityadmin Db_datareader Db_datawriter Db_ddladmin DB_backuporeator DB-szintű DBA CONNECT jog felügyelet Védelmi jogok felügyelete SELECT jog DML jog Séma módosítás mentések kezelése 8
Application role Nem személyhez, hanem megadott alkalmazáshoz kötődik Csak az alkalmazás ideje alatt él Felvétele: sp_setapprole Jelszó védi Adattitkosítási lehetőségek Service master key: Szimmetrikus kulcs, automatikusan generált Server password, connection strings, account passowords, DB master keys DB master key CREATE MASTER KEY ENCRYPTION BY pwd DB passwords 9
Adattitkosítási lehetőségek Adat kódolás: Szimmetrikus vagy asszimmetrikus kulcs CREATE SYMMETRIC KEY kk WITH ALRITHM = mod ENCRYPTION BY PASSWORD=pwd Felhasználása: EncryptByKey(Key_GUID(kk),szöveg) DecryptByKey(szöveg) Adattitkosítási lehetőségek -- Create a Master Key USE MASTER CREATE MASTER KEY ENCRYPTION BY PASSWORD = -- Create a Certificate USE MASTER CREATE CERTIFICATE tdecertificate WITH SUBJECT = 'TDE Certificate'; 10
Adattitkosítási lehetőségek -- Backup the certificate -- Required if restoring encrypted databases to another server -- Also required for server rebuild scenarios USE MASTER BACKUP CERTIFICATE tdecertificate TO FILE = '' WITH PRIVATE KEY (FILE = 'e:\cert\tdecertificateprivatekey.backup', ENCRYPTION BY PASSWORD = 'jjkiid_%%4-9') Adattitkosítási lehetőségek -- Create a Database Encryption Key USE [AdventureWorks2008] CREATE DATABASE ENCRYPTION KEY WITH ALRITHM = AES_128 ENCRYPTION BY SERVER CERTIFICATE tdecertificate -- Encrypt the database using TDE -- Encryption will proceed as a background task - ALTER DATABASE [AdventureWorks2008] SET ENCRYPTION ON 11
Auditing A felhasználói tevékenységek naplózása Szintjei: Server vagy adatbázis Személy Tevékenység Auditing 12
DDL Trigger CREATE TRIGGER DDLTrigger_CreateTable ON DATABASE FOR create_table AS CREATE TRIGGER DDLTrigger_PreventTableChanges ON DATABASE FOR DROP_TABLE, ALTER_TABLE AS PRINT 'Cannot drop or modify tables in this database' ROLLBACK Login Trigger CREATE TRIGGER validatelogontrigger ON ALL SERVER WITH EXECUTE AS 'logontrigger FOR LON AS BEGIN DECLARE @time time(0) = getdate() IF ORIGINAL_LOGIN() = 'ReportUser' AND @time BETWEEN '23:00:00' and'23:30:00' ROLLBACK END 13
Policy based management source: SQLServer manual Policy based management A DBA fontosabb feladatai: - objektumok menedzselése - a minimális igényelt jogosultsági rendszer beállítása - full recovery modell működtetése - beállítások menedzselése - művelet optimalizálás A Policy-based management egy speciális Active Directory az SQLServer felé. Célja a DB rendszer integritásának, védelmének felügyelete Eszközrendszer arra, hogy a védelmi, működési paraméterek a megszabott értéken maradjanak 14
Policy based management Alapfogalmak: Target: az engeldély tárgya, pl. tábla, adatfile,.. Facets: egységbe fogott paraméterek Conditions: a paraméterekre kiszabott felételek Mode: az ellenőrzés módja Policy: target + conditions + mode Enterprise Policy manager: szerver park adminisztrálása Policy based management - tábla - file - index - eljárás - user - mentés - memória - SQL - Target kijelölése 15
Policy based management Facets kijelölése Policy based management param Op érték elemek megadása Conditions kijelölése 16
Policy based management Működési módok: On Change Prevent: egy DDL triggeren keresztül ellenőriz, és visszavonja a szabályt sértő művelet On Change Log Only egy DDL triggeren keresztül ellenőriz, és csak naplózza a sértő műveletet On Schedule ütemezett indítás On Demand kézi indítás Policy based management A policy ellenőrzésének hatása (példa) 17
Policy based management A policy - exportálható - importálható - van gyárilag definiált 18