Bài giảng Hệ quản trị cơ sở dữ liệu SQL Server: Chương 5 Bảo mật và phân quyền cung cấp cho người học những kiến thức như: Giới thiệu; Login, User Account, User Roles; Kế hoạch phân quyền và bảo mật; Kết nối cơ sở dữ liệu. Mời các bạn cùng tham khảo!
Trang 1GVPT: NGUYỄN THỊ MỸ DUNG
SỐ TC: 2
SỐ TIẾT: LT: 20; TH: 20
Trang 2Chương 1: Tổng quan về SQL Server (LT: 2)
Chương 2: Tạo và quản trị CSDL (LT: 6; TH: 6) Chương 3: Transact-SQL và truy vấn dữ liệu (LT: 6: TH: 8)
Chương 4: Lập trình với Transact-SQL (LT: 4: TH: 4)
Chương 5: Bảo Mật và Phân Quyền (LT: 2; TH: 2)
Chương 6: Kết nối CSDL (Tự học)
Trang 3I Giới thiệu
II Login, User Account, User Roles
III Kế hoạch phân quyền và bảo mật
IV Kết nối CSDL
Trang 41/ Khái niệm
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 (user) đăng nhập (login) và gán quyền cho user trên CSDL Các quyền:
- Cấp phát quyền truy cập vào CSDL;
- Cấp phát quyền sử dụng các câu lệnh, các đối tượng CSDL;
- Thu hồi quyền của người dùng
Trang 52/ Các thành phần trong bảo mật CSDL
- Người dùng cơ sở dữ liệu (Database user):
thực thi các thao tác trên cơ sở dữ liệu như tạo bảng, truy xuất dữ liệu, Mỗi một người dùng được xác định thông qua tên người dùng (User ID) hoặc nhóm người dùng (User Group)
- Các đối tượng cơ sở dữ liệu (Database objects): bảng, khung nhìn, thủ tục, hàm được gọi
là các đối tượng cơ sở dữ liệu
- Đặc quyền (Privileges): Là tập những thao
tác được cấp phát cho người dùng trên các đối tượng cơ sở dữ liệu
Trang 61/ Login và user
SQL Server cho phép truy nhập vào hệ thống thông qua các login Chỉ khi có quyền ở mức độ nhất định bạn mới có thể tạo thêm login
- Login: tên hệ thống (duy nhất) được SQL Server cấp phép truy cập hệ thống
- User: tên gắn với 1 login name cụ thể được SQL cấp phép truy xuất 1 DB xác định
Như vậy:
- Một login name có nhiều user, một user được tạo
ở DB nào thì chỉ được phép truy xuất DB đó
- Để tạo nhiều user phải tạo LOGIN NAME trước, sau đó mở DB tương ứng và lần lượt tạo từng USER
Trang 72/ Authentication
SQL Server xác thực các đăng nhập bằng hai cơ chế: windows authentication, SQL Server authentica- tion
- Nếu chọn windows , bạn cần cung cấp một windows account và SQL Server sẽ chỉ lưu tên của account đó trong danh sách login
- Nếu chọn SQL Server , bạn cần cung cấp login name và password và cả hai đều được lưu trong SQL Server
Lưu ý: login sử dụng windows authentication, SQL Server chỉ lưu login name, không lưu password và khi đăng nhập, hệ thống sẽ không xác thực cho bạn
Trang 83/ Server role
Role thực chất là tập hợp một nhóm các quyền và đại diện bằng một tên để thuận tiện cho việc quản lý Server role là nhóm các quyền ở mức server mà login được cấp sẽ có thể thực hiện một số thao tác nhất định ở mức server
Login khi mới được tạo sẽ có role public, role này thực chất không có quyền gì ngoài quyền truy nhập vào server
4/ Database role
DB tập hợp các quyền truy nhập vào DB thành từng nhóm để dễ tạo lập và sửa đổi Khi user là role public, user chỉ có thể nhìn thấy tên database mà không có quyền gì khác
Trang 9Phân chia quyền hạn quản trị và sử dụng Hệ quản trị CSDL SQL Server
Hình thành theo cơ cấu
Trang 101 Đăng nhập (login)
a/ Tạo người đăng nhập
SP_ADDLOGIN [ @login = ] <'Têndangnhap'>
[,@password =] <'pass'>, [,@defdb =] <'TênCSDL'> [ , @deflanguage = ] <'Ngônngữ'>
Trang 11Cách 2:
CREATE LOGIN <Tên_login>
WITH PASSWORD = <‘Pass’>,
DEFAULT_DATABASE = <TÊN_DB>
VD1: Tạo login USER02
CREATE LOGIN USER02
WITH PASSWORD = 'ABC',
DEFAULT_DATABASE = QLDETAISV
[,…]
Trang 12b/ Thay đổi người đăng nhập
ALTER LOGIN { [ENABLE | DISABLE] |
WITH {PASSWORD= ‘ ’ | DEFAULT_DATABASE = } VD:
ALTER LOGIN [sa] DISABLE
c/ Xóa người đăng nhập
Hoặc: DROP LOGIN TÊN_LOGIN
VD:
DROP LOGIN USER01
EXEC SP_DROPLOGIN USER02
Trang 13EXEC SP_ADDUSER [MDUNG], [HQTCSDL]
CREATE USER [IN410501] FOR LOGIN [MDUNG]
CREATE USER [IN410502] WITHOUT LOGIN
WITH DEFAULT_SCHEMA =[MDUNG]
Trang 14b/ Xoá người dùng
[EXEC] SP_DROPUSER ‘TÊN_USER’
DROP USER TÊN_USER
VD:
DROP USER IN410501
Trang 153 Nhóm quyền hạn (Role)
a/ Tạo quyền
EXEC SP_ADDROLE TÊN_ROLE
CREATE ROLE TÊN_ROLE
VD:
EXEC SP_ADDROLE [QUANLY]
CREATE ROLE [NHANVIEN]
b/ Xóa nhóm quyền
EXEC SP_DROPROLE TÊN_ROLE
DROP ROLE TÊN_ROLE
Trang 16c/ Gắn người dùng với nhóm quyền
EXEC SP_ADDROLEMEMBER TÊN_ROLE,
TÊN_USER VD:
EXEC SP_ADDROLEMEMBER 'QUANLY' ,
'IN410501'
d/ Xóa người dùng với nhóm quyền
EXEC SP_DROPROLEMEMBER TÊN_ROLE ,
TÊN_USER’
VD:
EXEC SP_DROPROLEMEMBER 'QUANLY' ,
'IN410501'
Trang 18[ WITH GRANT OPTION ]
with grant option : được phép gán lại quyền mà mình có cho người khác
VD1:
GRANT SELECT ON DETAI TO QUANLY
Trang 215 Thay đổi mật khẩu
SP_PASSWORD [ @old = ] <'oldPW'>
Trang 226 Cấp quyền truy xuất CSDL hiện tại cho Login:
Sp_GrantDBAccess [ @loginname = ]
'Têndangnhap'
[ [, @name_in_db = ] 'TênUser' ] VD:
Use QLDeTai
Go sp_GrantDBAccess 'user01', 'Anh'
Trang 23Sinh viên tự học