CSDL3_quyen nguoi su dung

Màu nền
Font chữ
Font size
Chiều cao dòng

v   Quản lý quyền

I-             Sử dụng EM

Mỗi CSDL có 1 hay nhiều users được chỉ định quyền truy xuất dữ liệu. Người quản trị có thể cấp quyền truy xuất CSDL bằng cách tạo một tài khoản đăng nhập (login) SQL Server cho User, thêm User vào CSDL và gán quyền cho User trên CSDL đó. Bao gồm các loại quyền:

Quyền truy cập vào SQL Server

Quyền truy xuất CSDL

Quyền thực hiện trên các đối tượng của CSDL

Quyền xử lý dữ liệu

1.     Tạo tài khoản đăng nhập

(1)Mở mục Security, click phải mục Login và chọn New Login…

(2)Trên trang General, nhập tên đăng nhập, chế độ xác nhận, CSDL mặc định.

(3)Trang Server Roles: Chọn vai trò quản trị mức Server cho tài khoản đăng nhập

System Administrators

Security Administrators

Server Administrators

Setup Administrators

Database Creator

Disk Administrators

Process Administrators

Bulk Administrators         

Đặc quyền cao nhất; cho phép thực hiện mọi tác vụ trên SQL

Quản lý các server logins.

Cho phép bạn định cấu hình những cài đặt server-wide.

Cho phép thêm và xóa các linked servers, và truy xuất vài SP

Tạo và hiệu chỉnh databases.

Quản lý các files trên đĩa.

Quản lý tiến trình đang chạy trong một thể hiện của SQL Server.

Thực hiện phát biểu BULK INSERT.

Chú ý :Bất kỳ Users của Windows NT thuộc nhómBUILTIN\Administrators đều có vai trò sysadmin.

(4)Trang Database Access: Chọn CSDL được phép truy xuất và vai trò của nó trong từng CSDL được chọn.

Fixed Database

Role Description

Public

Vai trò chung cho tất cả người dùng.

db_owner

Quyền cao nhất trong database.

db_accessadmin

Điều khiển truy xuất, cài đặt hoặc xóa user accounts.

db_datareader

Đọc tất cả dữ liệu trên database.

db_datawriter

Thêm, sửa, xóa dữ liệu trên các tables người dùng trong database.

db_ddladmin

Thêm, sửa, xóa các đối tượng objects (runs all DDLs).

db_securityadmin

Quản lý các roles, các thành viên của role, giấy phép trong database.

db_backupoperator

Cho phép back up database.

db_denydatareader

Từ chối quyền truy vấn dữ liệu trong database.

db_denydatawriter

Từ chối quyền thay đổi dữ liệu trong database.

Sau khi tạo login, nó tự động nhập vào tập Users của mỗi database được chọn, với tên User trùng với tên Login. Bạn có thể thay đổi thu hồi vai trò của nó trên từng CSDL bằng cách sửa đổi thuộc tính của Login, hoặc chuyển đến tập Users của database và thay đổi thuộc tính hoặc xoá user nào mà bạn không muốn cho truy xuất data của bạn.

Các Login được lưu trong table SysLogins của CSDL Master:

If Exists( Select 1 From Master..SysLogins Where Name = 'Login')

Các User trong một CSDL được lưu trong table SysUsers của CSDL đó

If Exists( Select 1 From SysUsers Where Name = 'User01')

2.     Thay đổi thuộc tính cho Login:

Bấm đúp vào tên Login hoặc click phải và chọn mục Properties

3.     Cấp Quyền Thực Thi Trên Mỗi CSDL:

Chọn database, trong mục Users bấm đúp vào tên User cần hiệu chỉnh (Login-ID).

Click nút Permission để chỉ định quyền truy cập dữ liệu trên từng Table, View. Quyền kiểm tra ràng buộc tham chiếu (DRI - Declarative Referential Integrity). Quyền thực hiện các thủ tục lưu trử.

Chú thích:

 Quyền kiểm tra ràng buộc  tham chiếu được sử dụng khi Table A được cấp quyền Update hoặc Insert. Table A có ràng buộc  FOREIGN KEY với table B, mà table B không được cấp quyền SELECT.

4.     Cấp Quyền Tạo Đối Tượng Trên CSDL:

o   Click phải vào tên CSDL, chọn Properties

o   Trong hộp thoại  Properties, chọn trang Permissions

o   Đánh dấu chọn các phát biểu được cần cấp quyền thực hiện cho các User.

5.     Xóa User trên một CSDL:

Click phải vào tên user và chọn Delete.

6.     Tạo User với Login đã có:

Click phải vào mục Users và chọn New  User...

Chú ý: Bạn có thể thay đổi tên User bằng cách xóa và tạo lại với login cũ

7.     Xóa Tài Khoản Đăng Nhập:

Click phải vào tên Login và chọn Delete

Với cách này sẽ xóa bỏ các user trong các CSDL đã chọn cho tài khoản này.

II-         Sử Dụng QA:

1.     Tạo Tài Khoản Đăng Nhập (Login Acount):

a.     Thêm Tài khoản với chế độ xác nhận SQL Server:

SP_ADDLOGIN           [ @login = ] <'Tênđăngnhập'>

[ , @password = ] <'password'>

[ , @defdb = ] <'TênCSDL'>

[ ,  @deflanguage = ] <'Ngônngữ'>

[ , @sid =] <'Mã nhận dạng Login'>

[ , @encriptopt = 'skip_encription' ]

o   @defdb : tên CSDL mặc định được mở khi đăng nhập. Nếu không chỉ định mặc định là CSDL Master.

o   @deflanguage : Ngôn ngữ mặc định

o   @sid : varbinary(16) : Mã nhận dạng của hệ thống. Nếu không chỉ định, hệ thống tự tạo một mã số mới.

o   @encriptopt varchar(20): Mặc định Password sẽ được mã hóa khi lưu trong các table hệ thống. Ngoại trừ bạn gán giá trị skip_encryption cho tham số này.

o   Thủ tục trả về giá trị 0 nếu thành công, ngược lại trả về giá trị 1.

Ví dụ: Tạo tài khoản tên 'myname', mật khẩu 'mypwd' vào CSDL 'QLDeTai'

Sp_AddLogin 'manhthu', '11', 'NorthWind'

Kết quả trả về : New loigin created

b.    Cấp quyền kết nối cho User hay nhóm User của Windows kết nối đến SQL Server:

SP_GRANTLOGIN [@loginame =] 'login'

'Login':  <Domain>|<Computer name>\<tênnhóm>

Ví dụ: Thêm tài khoản cho user Windows NT [Server4\User01] kết nối đến SQL Server.

sp_grantlogin

'MANHTHU-PC\SQLEXPRESS\Databases\Northwind\Security\Users\manhthu'

Chú ý: Chỉ được thức hiện bởi những thành viên có vai trò sysadminsecurityadmin.

2.     Thay đổi mật khẩu:

Sp_Password [ @old = ] <'oldPW'> 

[ , @new = ] <'newPW'>

[ , @LoginName = ] <'login'>

Ví dụ: đổi mật khẩu của tài khoản :tranmanhthu là 11 thành 123

Sp_password ‘11’, ‘123’, ‘tranmanhthu’

3.     Cấp quyền Truy xuất CSDL Hiện Hành cho Login:

Sp_GrantDBAccess [ @loginname = ] 'Tênđăngnhập'

[ [, @name_in_db = ] 'TênUser' ]

Ví dụ: Use NorthWind

Go

sp_GrantDBAccess 'tranmanhthu', 'manhthu'

4.     Xóa quyền truy xuất CSDL hiện hành:

Sp_RevokeDBAccess  [ @name_in_db = ] 'TênUser'

Ví dụ: Sp_RevokeDBAccess  'manhthu'

5.     Cấp quyền thực thi trên CSDL:

Bao gồm các quyền: Select, Insert, Update, Delete, Reference, Excecute.

GRANT  ALL | <quyền> [,…]

ON  <TênTable|View>[(<têncột>,..)] | <tênSP>

TO  <tên Login hoặc Role> [,…]

[WITH GRANT OPTION]

[AS <tên Role> ]

o   All : Cấp tất cả các quyền thực thi Select, Insert, Update, Delete hay Reference trên table hay view; quyền Excecute cho SP.

o   TO  <tên Login hoặc Role> : Khi cấp quyền cho nhóm hay user của Windows NT, phải chỉ định: <Domain>|<Computer name>\<tênnhóm>.

Để cấp quyền cho nhóm cục bộ Windows NT built-in, dùng từ khóa BUILTIN thay thế tên domain hoặc computer name .   

Quyền thực thi đã cấp cho role Public được áp dụng cho tất cả users   trong CSDL.  Quyền thực thi đã cấp cho user Guest  được  sử dụng cho tất cả Users không được phân quyền truy xuất trên CSDL.

Ví dụ: USE Northwind

Grant All On  sinhvien To manhthu

GO

GRANT SELECT ON sinhvien TO public

GO

GRANT INSERT, UPDATE, DELETE ON sinhvien TO manhthu

GO

o   WITH GRANT OPTION : Cho phép Login cấp quyền đã chỉ định trên đối tượng cho Login khác.

o   AS {group | role}: Được dùng khi quyền thực thi trên một đối tượng đã cấp cho nhóm hoặc role, và một User của nhóm hoặc Role muốn cấp quyển thực thi cho User khác không là thành viên của nhóm hoặc Role.

Ví dụ: table NhatKy được tạo bởi user THU. HIEP  cấp quyền SELECT table NhatKy cho Role BanBe với mênh đề WITH GRANT OPTION để các user thành viên của Role BanBe có thể nhường quyền này cho các user khác không thuộc Role BanBe.

User THU, là thành viên của BanBe, muốn nhường quyền SELECT table NhatKy cho user THI, không là thành viên của role BanBe.

GRANT SELECT ON NhatKy TO BanBe WITH GRANT OPTION

GRANT SELECT ON NhatKy TO THI AS BanBe

6.     Từ Chối quyền thực thi trên CSDL:

DENY ALL | <quyền> [,…]

        [ ( column [ ,...n ] ) ] ON { table | view }

        | ON  table | view  [ ( column [ ,...n ] ) ]

        | ON  stored_procedure

TO <tên Login hoặc Role> [,…]       [Cascade]

Ví dụ: USE northwind

GO

GRANT SELECT ON sinhvien TO public

GO

DENY SELECT, INSERT, UPDATE, DELETE

ON sinhvien TO manhthu

7.     Xóa bỏ quyền thực thi đã cấp hoặc từ chối trên CSDL:

REVOKE [ GRANT OPTION FOR ]

    { ALL | permission [ ,...n ] }

        [ ( column [ ,...n ] ) ] ON { table | view }

        | ON { table | view } [ ( column [ ,...n ] ) ]

        | ON { stored_procedure | extended_procedure }

        | ON { user_defined_function }

TO | FROM security_account [ ,...n ]

[ CASCADE ]

[ AS { group | role } ]

Ví dụ : Xóa bỏ quyền Select đã từ chối cho User manhthu  trên TABLE  sinhvien.

REVOKE  SELECT  ON  sinhvien  TO manhthu

8.     Cấp Quyền tạo đối tượng trong CSDL:

GRANT ALL | <lệnh> [,…]

TO <tên Login hoặc Role> [,…]

Bao gốm các lệnh: CREATE DATABASE; CREATE DEFAULT;

CREATE PROCEDURE; CREATE RULE; CREATE TABLE; CREATE VIEW;

BACKUP DATABASE; BACKUP LOG

Ví dụ: GRANT CREATE DATABASE, CREATE TABLE

TO manhthu

9.     Từ chối quyền tạo đối tượng trên CSDL:

DENY { ALL | statement [ ,...n ] }  FROM security_account [ ,...n ]

Ví dụ:         DENY CREATE TABLE FROM manhthu

10.                        Xóa bỏ quyền tạo đối tượng đã cấp hoặc từ chối trên CSDL:

REVOKE { ALL | statement [ ,...n ] }  FROM security_account [ ,...n ]

Ví dụ :  REVOKE CREATE TABLE FROM manhthu

Bạn đang đọc truyện trên: Truyen4U.Pro