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

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

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]

Trang 1

1

Nội dung

• Trigger

• Khung nhìn

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

• Sao lưu và phục hồi dữ liệu

Trang 2

Giới thiệu

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

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

– Cung cấp và quản lý các tài khoản truy cập (login) mà

người sử dụng dùng để kết nối với SQL Server

– Phân quyền: người dùng chỉ được phép thực hiện

những thao tác mà họ được “cấp phép”

Trang 3

3

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

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

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

không i.e có đượ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 của SQL

Server (SQL Server Authentication)

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

Windows (Windows Authentication: integrated security/ trusted

connection)

Trang 5

 Windows quản lý các tài khoản của người

dùng và thực hiện việc chứng thực khi

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 chỉ xét xem người dùng này của

Windows đã được cấp phép vào SQL

Server hay chưa

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

đang chạy trên đó luôn được phép vào SQL

Server với quyền SysAdmin

Trang 6

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

• Lựa chọn:

– Chỉ dùng Windows Authentication

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

• Thực hiện cấu hình này lúc:

– Cài đặt

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

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

Chọn Properties

Vào tab Securities

Trang 7

7

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

Trang 8

Khái niệm login và 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ó thể có quyền truy cập 0-n database

– Trong mỗi database, một login sẽ ứng với một user

Trang 9

9

Khái niệm login và user (tt)

• User:

– Một “người dùng” trong một database cụ thể

– Một user ứng với một login

Login: pnthao

db QLSV – user QuanTriVien1

db QLTuyenSinh – user Dev1

Trang 10

Cấp và quản lý login

• Login được cấp và quản lý bởi quản trị hệ thống

SysAdmin hoặc quản trị an ninh SecurityAdmin

Trang 11

11

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

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

– Cấp phép một hoặc một nhóm người dùng của Windows (Windows user/ group) được 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 khi được cấp quyền, tài khoản Windows có thể

được sử dụng như là 1 login của SQL Server

Tên máy

Trang 12

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

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

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

hoặc xem chi tiết của một tài khoản login (đối với database hiện hành)

– sp_password: đổi password của login

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

– sp_dropLogin: xóa login đã cấp bằng thủ tục sp_addlogin

– sp_revokeLogin: lấy lại quyền truy cập đã cấp cho một

người dùng/nhóm người dùng của Windows bằng thủ tục

sp_grantLogin

Trang 13

13

Tạo và quản lý user

• Tạo user == cấp cho một login quyền truy cập vào

database hiện 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‟ sẽ tự động được sử dụng cho „user_name‟

– Thủ tục sp_grantDbAccess chỉ có thể được thực hiện bởi thành

viên của SysAdmin, db_owner và db_accessAdmin

Trang 14

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

• Ví dụ

exec sp_grantDbAccess ‘Nam’, ‘dev01’

exec sp_grantDbAccess ‘Server01\user01’, ‘dev02’

• Xóa user khỏi database hiện hành

Trang 15

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

– 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

15

Trang 16

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

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

nhưng chưa thực hiện được thao tác gì (đọc, cập nhật, …)

trên các đối tượng trong database vì chưa được cấp quyền

Cần gán những quyền cụ thể cho từng user của database

 Nếu nhiều user cần được cấp cho một số quyền giống nhau:

tạo role, gán các quyền đó cho role User cần các quyền này

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

Role = Nhóm các user/login

Mặc định, các user thành viên của role sẽ được

hưởng tất cả những quyền đã cấp cho role Tuy nhiên, các thành viên này cũng có thể được cấp thêm các quyền riêng, hoặc bị từ chối một

Trang 18

Định nghĩa vai trò Role mới

• Người dùng có thể tự định nghĩa các vai trò mới

cho database hiện hành

• Cú pháp

sp_addRole

[ @rolename = ] 'role'

[ , [ @ownerName = ] 'owner' ]

• Thủ tục sp_addRole chỉ có thể thực hiện bởi thành viên của

SysAdmin, db_owner, db_securityAdmin

Trang 19

19

Định nghĩa vai trò mới (tt)

• Ví dụ:

exec sp_addRole ‘Developer’

exec sp_addRole ‘Developer’, ‘dbo’

hệ thống SysAdmin vào SQL Server, login này có quyền

truy cập vào tất cả các database và có tên user tương

ứng trong từng database là “dbo”

• Xoá một role đã tạo:

sp_dropRole ‘role’

• Xem các role đã tạo / chi tiết của 1 role:

sp_helpRole [‘role’]

Trang 20

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

• Thêm một login vào các role hệ thống có sẵn:

– Cú pháp:

sp_addSrvRoleMember [ @loginame = ] ‘login’

– Ví dụ:

exec sp_addSrvRoleMember ‘pnthao’, ‘SysAdmin’

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

sa và các login là administrator của Windows đều là thành viên

của SysAdmin

Trang 21

21

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

• Thêm một thành viên vào một vai trò (định nghĩa sẵn

Trang 22

Các user và role đặc biệt trong database

• Trong mỗi database có các user/role đặc biệt:

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

vai trò quản trị hệ thống SysAdmin Login này có quyền

truy cập và thực hiện mọi thao tác trong tất cả các

database

– public: là role định sẵn trong mỗi database, tất cả các

quyền gán cho “public” đều được tất cả user trong

database thừa hưởng

– guest: là user ứng với những login không được cấp

quyền truy cập vào database 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

Trang 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 hiện lệnh (create database, create

procedure, create table,…)

– Cấp quyền thao tác trên các đối tượng trong CSDL (đọc/ ghi trên table/view, thực hiện thủ tục,…)

Trang 24

– statement = create database | create table | create view |

create rule | create procedure | backup database | …

– security account = user | role

• Ví dụ:

GRANT create table, create procedure TO dev01

Trang 26

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

– Permission = select|insert|delete|update

– WITH GRANT OPTION: cho phép user được cấp các

quyền thao tác này cho user/ role khác

– AS role: lệnh cấp quyền được thực hiện với tư cách là

thành viên của “role”

Trang 27

27

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

• Ví dụ 1:

Grant select, update

on SinhVien (HoTen, DiaChi, NgaySinh)

to Developer

Thành viên của Developer có quyền select, update trên các cột HoTen, DiaChi

và NgaySinh của bảng SinhVien

Nhưng không được cấp

quyền này cho user khác

Trang 28

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

• Ví dụ 2:

Grant select, update

Thành viên của Developer có quyền select, update trên các cột HoTen, DiaChi

và NgaySinh của bảng SinhVien

Và được phép cấp quyền này cho user khác

dưới danh nghĩa của Developer

Trang 30

Từ chối quyền của user/ role

• Dùng Deny để từ chối quyền của một user/role

– Khi một user/role bị từ chối một quyền, nó sẽ không

được thừa hưởng quyền này dù là thành viên của một role có quyền đó

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

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

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

Trang 32

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

• Cú pháp

DENY

{ ALL | permission [, n] }

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

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

Trang 33

33

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

• Ghi chú:

– Nếu security_account được cấp (grant) trực tiếp quyền

này với “with grant option”, phải chỉ định cascade khi

deny (từ chối quyền này đối với tất cả user/role đã được security_account cấp quyền này)

• Ví dụ

Deny select, update

on SinhVien (HoTen, DiaChi, NgaySinh)

to Dev02

Trang 34

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

• Dùng revoke để khôi phục quyền đã cấp hoặc bỏ đi

việc từ chối quyền trên user/role

– Nếu user/ role được cấp (grant) một quyền, revoke

quyền này sẽ làm mất hiệu lực của lệnh grant trước đó – Nếu user/ role đang bị từ chối (deny) một quyền, lệnh

revoke quyền này trên user/ role cũng gỡ bỏ đi hiệu lực của lệnh deny đó

• Có hai dạng tương tự như grant

– Quyền thực hiện lệnh

– Quyền thực hiện thao tác trên đối tượng

Trang 36

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

• Cú pháp

REVOKE{ ALL | permission [, n] }

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

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

Trang 37

37

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

• Ví dụ:

Revoke select, update

on SinhVien (HoTen, DiaChi, NgaySinh)

from Dev02

Revoke update

on SinhVien (HoTen, DiaChi, NgaySinh)

from Developer

Trang 38

• Xem các lệnh/thao tác hiện tại được cấp

– select * from sys.database_permissions

– select * from sys.database_principals

Trang 39

HẾT

39

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

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w