An toàn dữ liệu mức phân quyền

Một phần của tài liệu Nghiên cứu giải pháp bảo mật cơ sở dữ liệu SQL server 2012 bằng phương pháp mã hóa (Trang 50)

3.3.1. Quyền

Một hệ thống quản lý dữ liệu quan hệ như SQL Server không chỉ là đáp ứng lưu trữ và truy xuất dữ liệu, mà còn đảm bảo sự gắn kết của nó và bảo vệ nó. Giống như các hệ thống máy chủ khác, nó xác thực người sử dụng và duy trì một phiên làm việc mà người dùng đó có thể truy cập dữ liệu, nếu người này được phép.

SQL Server kiểm tra những quyền trong mỗi lần đọc hay ghi dữ liệu. Các quyền được thiết lập bởi các câu lệnh trong ngôn ngữ kiểm soát dữ liệu (Data Control Language - DCL). DCL là một tập con của ngôn ngữ SQL được sử dụng để kiểm soát việc truy cập dữ liệu. Quyền có 3 trạng thái:

- GRANT: Quyền được cho phép - DENY: Quyền bị từ chối

- REVOKE: Xóa bỏ việc cấp hoặc từ chối quyền

Thuật toán kiểm tra quyền trong SQL Server là phức tạp, nhưng nó giúp ta có chiến lược cấp quyền một cách đơn giản. Các quyền được phân cấp và bắc cầu. Hệ thống phân cấp của các đối tượng trong SQL Server như sau:

Server -> Database -> Schema -> Object -> Column 3.3.2. Giao quyền ở mức cột

Các quyền trong SQL Server được phân cấp, một người dùng có đặc quyền trên một lược đồ sẽ có đặc quyền đó đối với các đối tượng bên trong lược đồ đó trừ khi Quyền từ chối (Deny) được cấp. Nhưng các đối tượng này không phải là mức thấp nhất trong hệ thống và có thể thực hiện thiết lập quyền tới mức cột. Tuy nhiên mức độ quyền mức cột ghi đè một quyền Grant

đã được cấp trong bảng. Đây là sự mâu thuẫn làm cho khả năng này dự kiến có thể bị gỡ bỏ trong các phiên bản sau.

3.3.3. Quản lý quyền sở hữu đối tượng

Theo mặc định, chủ sở hữu của các đối tượng là chủ sở hữu của lược đồ chứa đối tượng đó. Chủ sở hữu này có mọi quyền với đối tượng và không thể từ chối nó.

Việc chuyển quyền sở hữu đòi hỏi phải có các quyền hạn để thực hiện, vì hai lý do. Thứ nhất, một người nào đó không được phép ăn cắp quyền sở hữu một đối tượng, và thứ hai là chủ sở hữu của một đối tượng không được phép chuyển nó cho những người không muốn nó.

3.3.4. Bảo vệ dữ liệu qua mức khung nhìn và thủ tục lưu trữ

Khi tham chiếu tới một đối tượng trong một khung nhìn hoặc một đối tượng là mã lệnh, ví dụ như một thủ tục hoặc một hàm, các quyền có thể được thiết lập trên khung nhìn hoặc thủ tục và hủy bỏ quyền trên các đối tượng được tham chiếu. Điều này cho phép bảo vệ các bảng dữ liệu bên dưới đối với các truy vấn trực tiếp.

3.3.5. Cấu hình an ninh trên CSDL ghi đè (Cross-Database)

Chuỗi quyền sở hữu cho phép cấp quyền chỉ trên khung nhìn hay các thủ tục và cấp quyền cho các đối tượng bên dưới. Điều này được giới hạn mặc định trong một CSDL. Nếu một đối tượng được tham chiếu từ một CSDL khác trong một khung nhìn hoặc thủ tục thì người dùng phải là một người sử dụng trong CSDL và có quyền truy cập đối tượng này.

3.3.6. Sử dụng EXCUTE AS để thay đổi ngữ cảnh người dùng

Từ SQL Server 2005, có thể sử dụng lệnh EXECUTE AS để mạo danh một người dùng khác trong một phiên làm việc hoặc để thực thi một thủ tục.

Lệnh “EXECUTE AS LOGIN = 'DOMAIN\USER1;” thay đổi ngữ cảnh được giả mạo một tài khoản đăng nhập mà được gán quyền mức Server.

Lệnh “EXECUTE AS USER = 'USER1';” thay đổi ngữ cảnh chỉ liên quan đến CSDL hiện tại và không cho đưa cho người gọi quyền mức server. Không thể chạy các lệnh bên ngoài của CSDL hoặc thay đổi CSDL hiện tại khi đang trong ngữ cảnh an toàn này.

Một phần của tài liệu Nghiên cứu giải pháp bảo mật cơ sở dữ liệu SQL server 2012 bằng phương pháp mã hóa (Trang 50)