Xem mẫu
- GVPT: NGUYỄN THỊ MỸ DUNG
SỐ TC: 2
SỐ TIẾT: LT: 20; TH: 20
Biên soạn: Nguyễn Thị Mỹ Dung 1
- Chươ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)
Biên soạn: Nguyễn Thị Mỹ Dung 2
- I. 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
Biên soạn: Nguyễn Thị Mỹ Dung 3
- 1/ 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.
Biên soạn: Nguyễn Thị Mỹ Dung 4
- 2/ 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.
Biên soạn: Nguyễn Thị Mỹ Dung 5
- 1/ 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.
Biên soạn: Nguyễn Thị Mỹ Dung 6
- 2/ 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.
Biên soạn: Nguyễn Thị Mỹ Dung 7
- 3/ 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.
Biên soạn: Nguyễn Thị Mỹ Dung 8
- Phâ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
Người đăng nhập (login)
Người dùng (user)
Quyền hạn (permission)
Nhóm quyền (role)
Người đăng nhập được thể hiện là mỗi một
người dùng với một số quyền hạn ứng với một dữ
liệu.
Biên soạn: Nguyễn Thị Mỹ Dung 9
- 1. Đăng nhập (login)
a/ Tạo người đăng nhập
SP_ADDLOGIN [ @login = ]
[,@password =] , [,@defdb =]
[ , @deflanguage = ]
[ , @sid =]
[ ,@encriptopt = 'skip_encription' ]--mã hóa pass
[,…]
VD: Tạo tài khoản tên USER01', mat khau ‘01'
vào CSDL 'QLDeTaiSV‘
SP_ADDLOGIN 'USER01','01','QLDETAISV'
Biên soạn: Nguyễn Thị Mỹ Dung 10
- Cách 2:
CREATE LOGIN
WITH PASSWORD = ,
DEFAULT_DATABASE =
VD1: Tạo login USER02
CREATE LOGIN USER02
WITH PASSWORD = 'ABC',
DEFAULT_DATABASE = QLDETAISV
[,…]
Biên soạn: Nguyễn Thị Mỹ Dung 11
- b/ 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
[EXEC] SP_DROPLOGIN ‘TÊN_LOGIN’
Hoặc: DROP LOGIN TÊN_LOGIN
VD:
DROP LOGIN USER01
EXEC SP_DROPLOGIN USER02
Biên soạn: Nguyễn Thị Mỹ Dung 12
- 2. Người dùng (User)
a/ Tạo người dùng
EXEC SP_ADDUSER ‘TÊN_LOGIN’, ’TÊN_USER’
[ , ‘TÊN_ROLE’ ]
CREATE USER TÊN_USER FOR TÊN_LOGIN
VD:
EXEC SP_ADDUSER [MDUNG], [HQTCSDL]
CREATE USER [IN410501] FOR LOGIN [MDUNG]
CREATE USER [IN410502] WITHOUT LOGIN
WITH DEFAULT_SCHEMA =[MDUNG]
Biên soạn: Nguyễn Thị Mỹ Dung 13
- b/ Xoá người dùng
[EXEC] SP_DROPUSER ‘TÊN_USER’
DROP USER TÊN_USER
VD:
DROP USER IN410501
EXEC SP_DROPUSER IN410502
Biên soạn: Nguyễn Thị Mỹ Dung 14
- 3. 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
Biên soạn: Nguyễn Thị Mỹ Dung 15
- c/ 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'
Biên soạn: Nguyễn Thị Mỹ Dung 16
- Biên soạn: Nguyễn Thị Mỹ Dung 17
- 4. Cấp quyền (Permission)
a/ Gán quyền
GRANT {ALL | PERMISSION}
ON TABLE [(COLUMN [,...N])]
TO { USER | ROLE [,... N] }
[ 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
Biên soạn: Nguyễn Thị Mỹ Dung 18
- VD2:
GRANT SELECT --INSERT | UPDATE | DELETE
| REFERENCES | EXECUTE
ON SINHVIEN -- DETAI | SV_DT
TO IN410501 -- PUBLIC| MDUNG | sa
Biên soạn: Nguyễn Thị Mỹ Dung 19
- b/ Xóa quyền hạn
REVOKE [Grant Option For] {ALL| PERMISSION}
ON TABLE[ (COLUMN [,...N])]
TO { USER | ROLE [,... N] }
[ CASCADE ]
- grant option for : bỏ tính năng cấp lại quyền
cho người khác (quyền vẫn được giữ lại).
- cascade: bỏ tất cả các quyền (ở các kế thừa).
VD:
REVOKE SELECT ON SINHVIEN TO
IN410501
REVOKE CREATE TABLE FROM MDUNG
Biên soạn: Nguyễn Thị Mỹ Dung 20
nguon tai.lieu . vn