iu khin truy cp d liu M hnh

  • Slides: 10
Download presentation
Điều khiển truy cập dữ liệu

Điều khiển truy cập dữ liệu

Mô hình an toàn của SQL Server (2) Database security: Quyền truy cập đến

Mô hình an toàn của SQL Server (2) Database security: Quyền truy cập đến database cụ thể (1) Login security : Xác thực kết nối đến SQL server (3) Database objects security – quyền truy cập đến các đối tượng của database

(1) Login security Ø Windows account login – a Windows account (mặc định bất

(1) Login security Ø Windows account login – a Windows account (mặc định bất kỳ account nào của windows cũng login được vào SQL server, tuy nhiên chưa – a member of a Windows group (có 2 nhóm mặc định: BUILTINAdministrators và BUILTINUsers) CREATE LOGIN [ccs-pchoanpt] FROM WINDOWS WITH DEFAULT_DATABASE = [qlnv]; GO Ø a SQL Server login CREATE LOGIN test WITH PASSWORD = '123456‘ GO Xóa login: DROP LOGIN test

(2) Database security Login mới được tạo chỉ mới có quyền login vào SQL

(2) Database security Login mới được tạo chỉ mới có quyền login vào SQL server, để cấp quyền truy cập vào database thì phải cấp cho login một user (thường tên database user trùng với tên login) Ø USE QLNV CREATE USER hoanpt FOR LOGIN [ccs-pchoanpt] Ø CREATE USER test [FOR LOGIN test]

(3) Database objects security User (or Login) mới được tạo chỉ mới có quyền

(3) Database objects security User (or Login) mới được tạo chỉ mới có quyền access vào database, để User (or Login) có quyền (select/insert/update/execute, …) trên đối tượng nào (table, view, SP, UDF, …) thì người quản trị cần cấp quyền rất cụ thể Ø GRANT SELECT ON nhanvien TO test; Ø GRANT, REVOKE, DENY

GRANT REVOKE, and DENY Ø GRANT [privilege] ON [object] TO [user] [WITH GRANT OPTION]

GRANT REVOKE, and DENY Ø GRANT [privilege] ON [object] TO [user] [WITH GRANT OPTION] Ø REVOKE [GRANT OPTION FOR] [permission] ON [object] FROM [user] [CASCADE] Ø DENY [permission] ON [object] TO [user]

object and privilege Object Privileges Security commands SQL server - SQL server Login -

object and privilege Object Privileges Security commands SQL server - SQL server Login - Create/drop database (1) Create login <login. ID> (2) Drop login <login. ID> (3) USE master CREATE USER <user. ID> GRANT CREATE DATABASE TO <user. ID> Database - DB user - BACKUP DATABASE, BACKUP LOG, CREATE TABLE, CREATE FUNCTION, CREATE VIEW, CREATE RULE Use <dbname> (1) Create user <user. ID> [for <login. ID>] (2) Drop user <user. ID> (3) Grant/Revoke/Deny Table, View SELECT, INSERT, DELETE, UPDATE SP, UDF EXECUTE Grant /Revoke/Deny

Role Ø Ø Role là một privilege group nhóm các quyền thành một bó.

Role Ø Ø Role là một privilege group nhóm các quyền thành một bó. Khi gán login. ID hoặc User. ID cho role thì login. ID hoặc user. ID có tất cả các quyền trong role đó. (Giống như Windows NT local groups: administrators, users, …) Role giúp giảm bớt các thao tác gán quyền truy cập dữ liệu (gán một nhóm quyền cho 1 login. ID hoặc user. ID, hoặc gán nhóm quyền cho một nhóm các user: Windows NT local groups) Có 3 loại role: 1. server role (role ở mức SQL server - login) 2. database role (role ở mức database - user) 3. application role (role ở mức application)

Server roles (Or login roles) There are seven fixed server roles (và chỉ có

Server roles (Or login roles) There are seven fixed server roles (và chỉ có các fixed roles này): ü sysadmin: The members of sysadmin server role can perform any activity in SQL Server and have completes control over all database functions. Serveradmin: setupadmin securityadmin processadmin dbcreator: The members of dbcreator server role can create, alter, and resize databases. ü diskadmin: ü ü ü sp_addsrvrolemember [@loginame =] 'login', [@rolename =] 'role‘ sp_dropsrvrolemember [@loginame =] 'login', [@rolename =] 'role'

Database roles (user roles) There are nine fixed database roles: ü ü ü ü

Database roles (user roles) There are nine fixed database roles: ü ü ü ü ü § § db_owner db_accessadmin db_datareader db_datawriter db_ddladmin db_securityadmin db_backupoperator db_denydatareader db_denydatawriter Use <dbname> sp_addrolemember [@rolename =] 'role', [@membername =] ‘user. ID‘ User-Defined Database Roles: § § Use <dbname> sp_addrole [@rolename =] 'role' [, [@ownername =] 'owner'] § § Grant <privileges> to [role] sp_addrolemember [@rolename =] 'role', [@membername =] ‘user. ID‘