Chào mừng đến với BIS Đăng nhập | Đăng ký | Trợ giúp
trong Tìm kiếm

Cơ bản về bảo mật CSDL với SQL Server

Bài cuối 09-08-2014 05:09 PM của chucnv. 0 trả lời.
Trang 1 trong số 1 (1 nội dung)
Sắp xếp bài viết: Trước Tiếp theo
  • 09-08-2014 05:09 PM

    • chucnv
    • 10 thành viên năng nổ nhất
    • Tham gia 12-05-2008
    • Điểm 28,320

    Cơ bản về bảo mật CSDL với SQL Server

    Cơ bản về bảo mật CSDL với SQL Server

    Một số khái niệm cơ bản

    Login và User:

    Login:  Dùng để truy cập vào hệ thống SQL Server, các Login chỉ mới có quyền truy cập vào Server chứ chưa hẳn có quyền truy cập vào các Database trên Server, các quyền truy cập vào Database được gắn liền với các người dùng CSDL (Users). Để xem tất cả các login của Server, dùng lệnh  exec sp_helplogins hoặc trong SSMS (Server/Security/Logins)

    User: Mỗi Database có một danh sách các người dùng được phép truy cập CSDL của mình, mỗi user luôn được gắn (mapped) với một login ở mức Server. Khi bạn đăng nhập vào SQL Server thông qua login này, bạn sẽ có quyền truy cập vào database theo quyền hạn mà user tương ứng với nó được cấp. Mỗi login có thể gắn với một hoặc nhiều user với quyền hạn khác nhau trên các Database.

    Để xem tất cả các users của một database, có thể dùng lệnh exec sp_helpuser hoặc trong SSMS (Database/Security/Users)

    Server role (vai trò phía Server)
    Role là tập hợp một số các quyền được nhóm lại và có một tên đại diện để thuận tiện cho việc quản lý. Server role là nhóm các quyền ở mức server mà login khi được cấp sẽ có thể thực hiện một số thao tác xác định ở mức server.  Các Server Roles trong SQL Server như sau:

    • sysadmin
    • bulkadmin
    • dbcreator
    • diskadmin
    •  processadmin
    •  securityadmin
    • serveradmin
    • setupadmin

    Trong đó sysadmin có quyền cao nhất (toàn quyền) hoạt động trong server, dbcreator  có quyền tạo database…

    Database role (vai trò phía Database)
    Database role tập hợp các quyền truy xuất database thành từng nhóm và được đại diện bởi một tên dùng để cấp phát quyền truy cập CSDL cho các users.

    Sau đây là các Database role trong SQL Server

    • db_owner
    • db_securityadmin
    • db_accessadmin
    • db_backupoperator
    • db_ddladmin
    • db_datawriter
    • db_datareader
    • db_denydatawriter
    • db_denydatareader

    Tên gọi của các Database Roles đã cho biết phần nào quyền truy cập Database. Chẳng hạn, db_datareader có quyền đọc dữ liệu từ tất cả các bảng, role db_datawriter có quyền ghi vào tất cả các bảng, role db_owner có quyền cao nhất (toàn quyền) trong database.

    Authentication (xác thực)
    SQL Server  cho phép xác thực đăng nhập vào hệ thống bằng hai cơ chế là windows authentication và SQL Server authentication.  SQL Server sẽ yêu cầu bạn chọn cơ chế xác thực windows hay SQL Server khi bạn tạo một login mới. Nếu chọn xác thực bằng windows authentication, bạn phải cung cấp một windows account và SQL Server sẽ chỉ lưu tên của account đó trong danh sách login. Nếu chọn SQL Server authentication, bạn cần cung cấp login name và password và cả hai được lưu trong SQL Server.

    Cấp phát và thu hồi quyền trong SQL

    Cấp phát quyền truy cập (GRANT)

    GRANT PRIVILEGES|ALL

    ON DatabaseObjects

    TO USERS

    [WITH GRANT OPTION ]

    Trong đó:

    PRIVILEGES : Các quyền truy cập Database (Select, Insert, Update, Excute…)

    DatabaseObjects: Các đối tượng cơ sở dữ liệu (Table, View, Stored Procedure, Functions…)

    USERS: Người dùng| nhóm người dùng

    WITH GRANT OPTION: Cho phép người dùng chuyển tiếp quyền cho người dùng khác

    Ví dụ: Cấp phát quyền SELECT, UPDATE trên bảng ACCOUNTS cho người dùng ‘khoa’ và cho phép người dùng này có thể cấp phát các quyền này cho người dùng khác

    GRANT SELECT, UPDATE

    ON ACCOUNTS

    TO khoa

    WITH GRANT OPTION

    Thu hồi quyền truy cập cơ sở dữ liệu

    REVOKE  PRIVILEGES|ALL 

    ON DatabaseObjects

    FROM USERS

    [CASCADE]

    Nếu ta đã cấp phát quyền cho người dùng nào đó bằng câu lệnh GRANT với tuỳ chọn WITH GRANT OPTION thì khi thu hồi quyền bằng câu lệnh REVOKE phải chỉ định tuỳ chọn CASCADE. Trong trường hợp này, các quyền được chuyển tiếp cho những người dùng khác cũng đồng thời được thu hồi.

    Ví dụ: Thu hồi quyền Update trên bảng ACCOUNTS từ người dùng khoa và thu hồi quyền này từ những người dùng khác mà User khoa đã cấp phát cho họ

    REVOKE UPDATE

    ON ACCOUNTS

    FROM khoa

    CASCADE

    Cách tạo và quản lý người dùng trong SQL Server Management Studio

    Bước1: Login vào SQL Server với người dùng có đủ quyền

    Bước 2: Tạo mới login

    Chọn Login name, Mode authentication, Server Role, Users Mapping… cho login

    Tạo User truy xuất CSDL (ATM)

    Tạo User name (tự đặt) và chọn login name cho username (ở đây chọn login là dba đã tạo ở bước trước)

    Đăng nhập vào hệ thống với User dba vừa tạo

    Để User ‘bda’ có quyền truy cập database, bạn phải đăng nhập vào hệ thống với vai trò của người quản trị và phân quyền truy xuất CSDL hợp lý cho ‘bda’.

    Xem Clip hướng dẫn tại đây: https://www.youtube.com/watch?v=dW00-Oirh90 
    • Điểm chủ đề: 20
Trang 1 trong số 1 (1 nội dung)
Powered by Community Server (Commercial Edition), by Telligent Systems