Quyền người dùng

Một phần của tài liệu Giáo trình quản trị cơ sở dữ liệu (Trang 157 - 161)

- Dễ dàng để bảo trì ứng dụng: Chúng ta dễ dàng sốt lỗi của View hơn là sốt

10.3 Quyền người dùng

Việc sử dụng dữ liệu khơng được phép liên quan đến việc xâm nhập của người bất hợp pháp. Hệ thống cần trang bị các tiện nghi để điều khiển truy cập cơ sở dữ liệu, thiết lập quyền của người dùng.

Người dùng cĩ thể cĩ một số quyền như: Quyền đọc , ghi, thay đổi đối tượng cơ sở dữ liệu.

Quyền

Object permissions: điều khiển ai cĩ thể truy cập và thao tác với dữ liệu trên bảng (tables) và khung nhìn (views) và ai cĩ thể được chạy các stored procedures.

Statement permissions điều khiển users nào cĩ thể xố và tạo đối tượng trong

Database.

Object Type Possible Actions

Table SELECT, UPDATE, DELETE, INSERT, REFERENCE Column SELECT, UPDATE

View SELECT, UPDATE, INSERT, DELETE Stored procedure EXECUTE

Cho phép và huỷ bỏ quyền trên đối tượng

User người mà tạo ra các đối tượng trong Database được gọi là object owner.Vì thế những user này phải cĩ quyền để tạo ra những đối tượng trong Database. SQL Server sử dụng lệnh GRANT, REVOKE, và DENY để quản lý quyền:

GRANT: Cho phép người dùng thực hiện thao tác như SELECT, UPDATE,

INSERT, DELETE hoặc EXCUTED trên các đối tượng.

Ví dụ:

ON authors

TO Mary, John, Tom

Ví dụ trên thực hiện việc cấp quyền INSERT, UPDATE, DELETE trên bảng Authors cho người dùng Mary, John, Tom.

REVOKE: Được sử dụng để xố quyền của người sử dụng.

DENY: Được sử dụng để ngăn cản người sử dụng thực hiện các thao tác trên các

đối tượng.

Hầu hết ứng dụng cơ sở dữ liệu đều địi hỏi những quyền khác nhau trên đối tượng của cơ sở dữ liệu, vì thế cĩ thể thao tác trên ứng dụng thì phải được phân quyền trên đối tượng đĩ. Đối với những ứng dụng cĩ thể lên đến vài trăm là ít và user cũng nhiều, việc phân quyền là khá phức tạp.

Để đơn giản cho việc quản lý quyền hạn bạn cĩ thể tạo ra những role ( được hiểu là một nhĩm những vai trị trung gian giữ lấy những quyền hạn) cho ứng dụng, những role này sẽ được gán cho tập hợp những quyền hạn, sau đĩ bạn cĩ thể gán những role này cho user.

Việc gán quyền thơng qua role cũng cĩ nhiều điểm lợi:

+ Role được gán nhiều quyền, user được gán đến role. Khi user thay đổi cơng việc thì bạn cĩ thể chỉ gán hay hủy bỏ quyền cho user với role.

+ Bạn cĩ thể thay đổi quyền liên quan đến ứng dụng bằng cách thay đổi quyền đến role mà khơng quan tâm đến những user trong ứng dụng.

Quản lý Role

Roles rất quan trọng vì nĩ là cách chính để cung cấp quyền cho người dùng. Quyền cĩ thể được cấp cho người dùng bằng cách cấp quyền trực tiếp, cách này làm cho người quản trị hệ thống làm việc rất mất thời gian và nhàm chán vì phải cấp chi tiết từng quyền cho từng người dùng. Hoặc quyền cĩ thể được cấp thơng qua Role - nĩ tương tự như khái niệm group trong NT. Chúng ta gán quyền cho từng Role và sau đĩ người dùng được xếp vào Role đĩ. Như vậy, cơng việc của người quản trị hệ thống trở nên dễ dàng hơn nhiều lần.

SQL Server cĩ Database Roles và Server Roles. Database Roles được sử dụng để cung cấp các mức khác nhau để truy cập vào cơ sở dữ liệu. Server Roles được sử dụng để cho phép hoặc hạn chế người sử dụng thực hiện các thao tác (operations) trên cơ sở dữ liệu.

Database Roles

Cĩ một kiểu Database Role rất đặc biệt, đĩ là public role. - Nĩ cĩ trong tất cả các Database.

- Nĩ khơng thể xố.

Sau đây là một số Database role và những quyền tương ứng:

- db_owner: Đây là Role cao nhất người dùng cĩ thể cĩ. Role này cho phép người dùng mọi quyền trên CSDL. Người dùng sa nằm trong Role này.

- db_securityadmin: Cho phép người dùng quản lý mọi Roles và nhĩm người dùng trong role.

- db_accessadmin: Cung cấp cho người dùng quyền thêm hoặc xố những người dùng khác trong CSDL.

- db_ddladmin: Cho phép người dùng thực thi mọi nhiệm vụ trên mọi đối tượng trong CSDL: người dùng cĩ thể tạo, sửa, xố các đối tượng.

- db_backupoperator: Cho phép người dùng thực hiện việc backup dữ liệu. - db_datareader: Cho phép người dùng xem dữ liệu trên các bảng của CSDL. - db_denydatawriter: Ngăn cản người dùng sửa bất kỳ dữ liệu nào trên bảng.

Server Roles

Server roles được SQL Server 2000 cho phép:

- Sysadmin: Cĩ đầy đủ mọi quyền trên SQL Server.

- Securityadmin: Cho phép tạo và quản lý việc đăng nhập cho Server.

- Serveradmin: Cho phép thiết lập cấu hình của các instance trên SQL Server.

- Setupadmin: Cĩ khả năng để quản lý các thủ tục khởi động và các server được liên kết. - Processadmin: Cĩ khả năng để quản lý các tiến trình đang chạy trên SQL Server. - Diskadmin: Cĩ thể quản lý các file trên đĩa

- Dbcreator: Cho phép tạo, sửa, và xố CSDL

Thêm thành viên cho Role

Để thêm Role mới, chúng ta cĩ thể thực hiện bằng EM hoặc sử dụng thủ tục sp_addrole, và để thêm thành viên cho Role, chungs ta sử dụng thủ tục sp_addrolemember. Ví dụ sau chỉ ra cách tạo Role và thêm các thành viên cho role.

sp_addrole 'Teacher' GO sp_addrole 'Student' GO sp_addrole 'StudentTeacher' GO

sp_addrolemember 'Teacher', 'NETDOMAIN\Peter' GO

sp_addrolemember 'Teacher', 'NETDOMAIN\Cathy' GO

GO

sp_addrolemember 'Student', 'NETDOMAIN\Mel' GO

sp_addrolemember 'Student', 'NETDOMAIN\Jim' GO

sp_addrolemember 'Student', 'NETDOMAIN\Lara' GO

GRANT SELECT ON StudentGradeView TO Student GO

GRANT SELECT, UPDATE ON ProfessorGradeView TO Professor GO

Kết chương:

Trong chương này bạn đã học về quan lý người dùng và bảo mật, bạn đã biết cách đăng nhập CSDL và tài khoải người dùng CSDL được để truy cập CSDL. Từ đĩ bạn học cách tạo và quản lý đăng nhập và người dùng CSDL. Bạn cũng đã học cách dùng nhĩm quyền CSDL để quan lý dễ dàng hơn việc thiết lập các quyền cho một nhĩm các người dùng và sửa đổi nhĩm quyền CSDL. Bạn đã học về các nhĩm quyền đặc biệt được gọi là các nhĩm quyền server cố định, được dùng để gán quyền quản trị cho người dùng và NQTCSDL.

Một phần của tài liệu Giáo trình quản trị cơ sở dữ liệu (Trang 157 - 161)