1. Trang chủ
  2. » Mẫu Slide

BẢNG ĐIỂM HỌC PHẦN SQL – LỚP CT15

39 19 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 39
Dung lượng 2,71 MB

Nội dung

Khi user này được tạo ra trong một database, các login chưa có tài khoản user trong database này cũng sẽ truy cập vào được.. Cấp quyền thao tác trên đối tượng (tt)[r]

(1)

1 Nội dung

Trigger

Khung nhìn

Quản trị quyền người dùng

(2)

Giới thiệu

SQL Server hỗ trợ chế đa người dùng

Cơ chế quản trị người dùng:

– Cung cấp quản lý tài khoản truy cập (login) mà người sử dụng dùng để kết nối với SQL Server

(3)

3 Các chế độ chứng thực (Authentication modes)

Chứng thực: (khái niệm)

– Xác nhận xem tài khoản truy cập login có hợp lệ

khơng i.e có phép kết nối với SQL server hay

khơng

Các chế độ chứng thực: – Chứng thực SQL

Server (SQL Server Authentication)

– Chứng thực tích hợp từ Windows (Windows

Authentication: integrated security/ trusted

(4)

Các chế độ chứng thực (tt)

Chứng thực SQL Server:

– SQL Server tự quản lý tên tài khoản (login name) mật (password)

(5)

5 Các chế độ chứng thực (tt)

Chứng thực Windows

– Giữa Windows SQL Server thực việc cấp phép cho người dùng Windows kết nối đến SQL Server Windows quản lý tài khoản người

dùng thực việc chứng thực người dùng đăng nhập vào Windows

Khi người dùng kết nối đến SQL Server sử dụng chế độ Window Authentication, SQL Server xét xem người dùng Windows cấp phép vào SQL Server hay chưa

Admin hệ điều hành mà SQL Server

(6)

Cấu hình chế độ chứng thực

Lựa chọn:

– Chỉ dùng Windows Authentication

– Mixed mode (sử dụng hai chế độ chứng thực)

Thực cấu hình lúc: – Cài đặt

– Thay đổi sau cài đặt: dùng Enterprise Manager:

Phải chuột lên tên Server cửa sổ duyệt bên trái

Chọn Properties

(7)(8)

Khái niệm login user

Login:

– Là tài khoản mà người sử dụng dùng để kết nối với SQL Server

– Một login có quyền truy cập 0-n database

(9)

9 Khái niệm login user (tt)

User:

– Một “người dùng” database cụ thể – Một user ứng với login

Login: pnthao

db QLSV – user QuanTriVien1

(10)

Cấp quản lý login

Login cấp quản lý quản trị hệ thống SysAdmin quản trị an ninh SecurityAdmin của SQL Server

Lệnh tạo login

sp_addLogin [ @loginame = ] ‘login_name [ , [ @passwd = ] 'password' ]

[ , [ @defdb = ]‘default_database’ ]

– Ví dụ

(11)

11 Cấp quản lý login (tt)

Lệnh cấp quyền truy cập (grant login)

– Cấp phép một nhóm người dùng Windows (Windows user/ group) kết nối đến SQL Server

– Cú pháp:

sp_grantLogin [@loginame =] windows_account

(windows_account có dạng Domain\User)

– Ví dụ:

exec sp_grantLogin Server01\user01

– Sau cấp quyền, tài khoản Windows sử dụng login SQL Server

(12)

Cấp quản lý login (tt)

Một số thủ tục liên quan

sp_helpUser [loginName]: xem tài khoản login có,

hoặc xem chi tiết tài khoản login (đối với database hành)

sp_password: đổi password login

sp_defaultDb: đổi database mặc định login

sp_dropLogin: xóa login cấp thủ tục sp_addlogin

sp_revokeLogin: lấy lại quyền truy cập cấp cho người dùng/nhóm người dùng Windows thủ tục sp_grantLogin

(13)

13 Tạo quản lý user

Tạo user == cấp cho login quyền truy cập vào database hành

Cú pháp:

sp_grantDbAccess

[@loginame =] ‘login_name’

[,[@name_in_db =] ‘user_name’ [OUTPUT]]

– Nếu không xác định tham số „user_name‟, „login_name‟ tự động sử dụng cho „user_name‟

– Thủ tục sp_grantDbAccess chỉ thực thành

(14)

Tạo quản lý user (tt)

Ví dụ

exec sp_grantDbAccess ‘Nam’, dev01

exec sp_grantDbAccess ‘Server01\user01, dev02

Xóa user khỏi database hành – Cú pháp

sp_revokeDbAccess user_name

– Ví dụ:

(15)

Lệnh tạo user khác (được khuyến khích dùng thay cho sp_grantdbaccess)

Cú pháp :

Create user user_name For | From

Login login_name

Ví dụ :

– Create user dev01 for login Nam – Create user dev02 from login Nam

Xóa user :

– Cú pháp: drop user user_name – Ví dụ: drop user dev01

(16)

Khái niệm vai trò (role)

– Sau tạo user: user có quyền truy cập vào database,

nhưng chưa thực thao tác (đọc, cập nhật, …) đối tượng database chưa cấp quyền

Cần gán quyền cụ thể cho user database

 Nếu nhiều user cần cấp cho số quyền giống nhau: tạo role, gán quyền cho role User cần quyền

chỉ cần đăng ký thành viên role được tạo

Role = Nhóm user/login

Mặc định, user thành viên role

hưởng tất quyền cấp cho role Tuy nhiên, thành viên

(17)

17 Các vai trị có sẵn

SQL Server định nghĩa cấp quyền sẵn cho số vai trò

role, bao gồm:

– Vai trò hệ thống: chung cho tồn server Một số vai trị hệ thống định sẵn:

SysAdmin, SecurityAdmin

DbCreator

…

– Vai trò database: riêng database Các vai trò database định sẵn:

db_owner

db_securityAdmin, db_accessAdmin

db_dataReader, db_dataWriter

(18)

Định nghĩa vai trò Role

Người dùng tự định nghĩa vai trò cho database hành

Cú pháp

sp_addRole

[ @rolename = ] 'role'

[ , [ @ownerName = ] 'owner' ]

(19)

19 Định nghĩa vai trò (tt)

Ví dụ:

exec sp_addRole ‘Developer’

exec sp_addRole Developer’, ‘dbo

Ghi chú: Khi login thành viên vai trò quản trị

hệ thống SysAdmin vào SQL Server, login có quyền truy cập vào tất database có tên user tương ứng database “dbo

Xố role tạo:

sp_dropRole ‘role

Xem role tạo / chi tiết role:

(20)

Thêm thành viên vào role

Thêm login vào role hệ thống có sẵn: – Cú pháp:

sp_addSrvRoleMember [ @loginame = ] ‘login’

,[ @rolename = ] ‘role’

– Ví dụ:

exec sp_addSrvRoleMember ‘pnthao’, ‘SysAdmin’

Ghi chú: Khi cài đặt, SQL Server định nghĩa sẵn login sa

sa login administrator Windows thành viên

(21)

21 Thêm thành viên vào role (tt)

Thêm thành viên vào vai trò (định nghĩa sẵn hoặc người dùng khai báo) database hành :

– Cú pháp:

sp_addRoleMember

[ @rolename = ] ‘role’

, [ @membername = ] ‘security_account’ security_account’ = user_name | role

– Ví dụ:

(22)

Các user role đặc biệt database

Trong database có user/role đặc biệt:

dbo: user định sẵn, ứng với login thành viên

vai trò quản trị hệ thống SysAdmin Login có quyền truy cập thực thao tác tất

database

public: role định sẵn database, tất

quyền gán cho “public” tất user database thừa hưởng

guest: user ứng với login không cấp

(23)

23 Cấp quyền cho user / role

Sử dụng lệnh “Grant …” để cấp quyền cho user / role

Có hai dạng:

– Cấp quyền thực lệnh (create database, create procedure, create table,…)

(24)

Cấp quyền thực lệnh

Cú pháp:

GRANT { ALL|statement[, n] }

TO security_account [, n] Trong đó:

– statement = create database | create table | create view | create rule | create procedure | backup database | …

– security account = user | role

Ví dụ:

(25)

25 Cấp quyền thao tác đối tượng

Cú pháp GRANT

{ ALL | permission[, n] }

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

| ON {stored_procedure}

| ON {user_defined_function} }

TO security_account [, n]

(26)

Cấp quyền thao tác đối tượng (tt)

Permission = select|insert|delete|update

|references|execute

WITH GRANT OPTION: cho phép user cấp quyền thao tác cho user/ role khác

(27)

27 Cấp quyền thao tác đối tượng (tt)

Ví dụ 1:

Grant select, update

on SinhVien (HoTen, DiaChi, NgaySinh)

to Developer

Thành viên

Developer có quyền select, update cột HoTen, DiaChi NgaySinh

(28)

Cấp quyền thao tác đối tượng (tt)

Ví dụ 2:

Grant select, update

on SinhVien (HoTen, DiaChi, NgaySinh)

to Developer

with grant option

Thành viên

Developer có quyền select, update cột HoTen, DiaChi NgaySinh

bảng SinhVien

Và phép cấp quyền cho user khác

(29)

29 Cấp quyền thao tác đối tượng (tt)

Ví dụ (tiếp vd2):

Login „Nam‟ kết nối đến SQL Server truy cập vào database QLSV:

Trong QLSV, „Nam‟ có tên user „dev01‟, thành viên vai trò Developer

„Nam‟ muốn cấp quyền select SinhVien (HoTen, DiaChi) cho user „sv01‟ khơng thuộc vai trị Developer?

(30)

Từ chối quyền user/ role

Dùng Deny để từ chối quyền user/role – Khi user/role bị từ chối quyền, khơng

được thừa hưởng quyền dù thành viên role có quyền

– Cú pháp: Có hai dạng tương tự Grant:

Từ chối quyền thực lệnh

(31)

31 Từ chối quyền thực lệnh

Cú pháp:

DENY { ALL | statement [, n] } TO security_account [, n] • Ví dụ

(32)

Từ chối quyền thao tác đối tượng

Cú pháp

DENY

{ ALL | permission [, n] }

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

| ON { user_defined_function } }

(33)

33 Từ chối quyền thao tác đối tượng (tt)

Ghi chú:

– Nếu security_account cấp (grant) trực tiếp quyền với “with grant option”, phải định cascade deny (từ chối quyền tất user/role security_account cấp quyền này)

Ví dụ

Deny select, update

on SinhVien (HoTen, DiaChi, NgaySinh)

(34)

Khôi phục quyền cấp/ từ chối

Dùng revoke để khôi phục quyền cấp bỏ việc từ chối quyền user/role

– Nếu user/ role cấp (grant) quyền, revoke

quyền làm hiệu lực lệnh grant trước – Nếu user/ role bị từ chối (deny) quyền, lệnh

revoke quyền user/ role gỡ bỏ hiệu lực lệnh deny

Có hai dạng tương tự grant – Quyền thực lệnh

(35)

35 Lấy lại/ bỏ từ chối quyền thực lệnh

Cú pháp:

REVOKE { ALL | statement [, n] }

From security_account [, n] • Ví dụ:

(36)

Lấy lại/ bỏ từ chối quyền thao tác đối tượng

Cú pháp

REVOKE{ ALL | permission [, n] }

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

| ON { user_defined_function } }

FROM security_account [, n] [CASCADE]

(37)

37

Lấy lại/ bỏ từ chối quyền thao tác đối tượng

Ví dụ:

Revoke select, update

on SinhVien (HoTen, DiaChi, NgaySinh)

from Dev02

Revoke update

on SinhVien (HoTen, DiaChi, NgaySinh)

(38)

Xem lệnh/thao tác cấp

– select * from sys.database_permissions

(39)

HẾT

Ngày đăng: 04/04/2021, 07:05

TỪ KHÓA LIÊN QUAN

w