Bảo mật cơ sở dữ liệu sql server (Bài 3)

Bảo mật cơ sở dữ liệu sql server là giải pháp cho phép các quản trị viên cơ sở dữ liệu thiết lập quyền hạn cho người dùng hoặc nhóm người dùng khai thác cơ sở dữ liệu. Người dùng hoặc nhóm người dùng sau khi được cấp quyền, có thể đăng nhập vào hệ thống và thực hiện các quyền hạn mà mình được cấp.

Bảo mật cơ sở dữ liệu sql server giúp phân quyền người dùng trên cơ sở dữ liệu. Hình bên dưới là một ví dụ về phân quyền trên cơ sở dữ liệu

bao mat co so du lieu sql server 1

Tình huống bảo mật cơ sở dữ liệu sql server 

Cấp quyền cho người dùng tên test1 được phép xem dữ liệu trên bảng VATTU của cơ sở dữ liệu QuanLyBanHang

Các bước thực hiện bảo mật cơ sở dữ liệu sql server – Cấp quyền cho người dùng

Đăng nhập vào hệ thống với quyền quản trị (Administrator) và thực hiện một trong hai cách sau:

Cách 1: Thực hiện bằng giao diện

Bước 1: Tạo tài khoản sql server (login)

bao mat co so du lieu sql server 2

bao mat co so du lieu sql server 3

Bước 2: Tạo người sử dụng (user)

bao mat co so du lieu sql server 4

bao mat co so du lieu sql server 5

Bước 3: Cấp quyền cho người dùng

Chuột phải lên bảng (table) hoặc cơ sở dữ iệu (Database) -> chọn Properties

bao mat co so du lieu sql server 6

bao mat co so du lieu sql server 7

Thiết lập quyền

bao mat co so du lieu sql server 8

Bảo mật cơ sở dữ liệu sql server – Thiết lập chế độ chứng thực Windows và SQL Server

Bước 1: Đăng nhập vào SQL Server bằng chứng thực Windows với quyền admin

Bước 2: Chuột phải lên trên cùng -> chọn Properties

Bước 3: Chọn SQL Server and Windows Authencation mode

bao mat co so du lieu sql server 9

Bước 4: Khởi động lại SQL Server

bao mat co so du lieu sql server 10

Bảo mật cơ sở dữ liệu sql server – Bài tập thực hành số 1

Cho phép người dùng test2 được phép xem tất cả dữ liệu của cơ sở dữ liệu QuanLyBanHang. Lưu ý: Kiểm tra quyền của người dùng này bằng cách sử dụng máy tính khác kết nối từ xa vào máy chủ (kết nối thông qua mạng LAN)

Cách 2: Thực hiện bằng câu lệnh

Bước 1: Tạo tài khoản đăng nhập

Cách 1:

create login tên_login with password = 'nhập_mật_khẩu'

Cách 2:

sp_addlogin 'tên_login','mật_khẩu'

Bước 2: Tạo người dùng

Cách 1:

create user tên_user for login tên_login

Cách 2:

sp_adduser 'tên_login','tên_user'

Bước 3: Cấp quyền cho người dùng

grant danh_sách_quyền on tên_bảng to tên_user [with grant option]

Tuỳ chọn [with grant option] được sử dụng để cho phép người dùng được phép cấp lại những quyền của mình cho người dùng khác.

Ví dụ cấp quyền cho người dùng

Tình huống: Cấp quyền xem và thêm dữ liệu trên bảng VATTU cho người dùng thanhnv.

Các bước thực hiện:

Bước 1: Tạo tài khoản đăng nhập

create login thanhnv with password = 'Abc12345'

Bước 2: Tạo người dùng

create user thanhnv for login thanhnv

Bước 3: Cấp quyền

grant select,insert on VATTU to thanhnv

Bài tập vận dụng: Cấp quyền xem và thêm trên bảng NHACC và bảng VATTU cho người dùng tên test3.

Lưu ý khi chúng ta muốn cấp quyền trên các cột, chúng ta phải chỉ định các cột được cấp như cú pháp bên dưới:

Cách 1:

grant select(danh_sách_cột) on tên_bảng to tên_user

Cách 2:

grant select on tên_bảng(danh_sách_cột) to tên_user 

Ví dụ chỉ cho pháp người dùng thanhnv được phép xem 2 cột masv và tensv của bảng SINHVIEN

grant select(masv,tensv) on sinhvien to thanhnv

Bảo mật cơ sở dữ liệu sql server – Windows Authencation

Bước 1: Tạo tài khoản đăng nhập hệ điều hành Windows, chúng ta có thể sử dụng câu lệnh sau và thực hiện trong CMD của Windows

net user accountName accountPassword /add

Sử dụng SQL Server Management Studio và thực hiện các bước sau

Bước 2: Tạo login ánh xạ đến tài khoản đăng nhập Windows

create login "hostName\accountName" from windows

Bước 3: Tạo user

create user userName for login "hostName\acountName"

Bước 4: Cấp quyền cho user

grant permission on tableName to userName [with grant option]

Clip hướng dẫn tạo login, tạo user và cấp quyền sử dụng Windows Authencation

Các bước thực hiện bảo mật cơ sở dữ liệu sql server – Cấp quyền cho nhóm

Nhóm trong SQL Server bao gồm 1 hoặc nhiều user, điều này cũng tương tự như trong công ty hoặc tổ chức mỗi phòng ban có 1 hoặc nhiều nhân viên. Bên dưới là ví dụ về sơ đồ tổ chức của một công ty.

bao mat co so du lieu sql server 11

Như vậy thay vì chúng ta cấp quyền cho từng user, người quản trị có thể cấp quyền theo nhóm. Và những user thuộc nhóm quyền nào sẽ có tất cả quyền của nhóm đó. Do đó, khi người quản trị thực hiện thêm bớt quyền sẽ dễ dàng hơn.

Bước 1: Tạo nhóm

Cách 1:

Create Role Tên_Nhóm

Cách 2:

Sp_AddRole 'Tên_Nhóm'

Bước 2: Cấp quyền cho nhóm

Grant Quyền On Bảng To Tên_Nhóm

Bước 3: Thêm user vào nhóm

Sp_AddRoleMember 'Tên_Nhóm', 'Tên_User'

Ví dụ cấp quyền cho nhóm xemdulieu quyền xem dữ liệu cơ sở dữ liệu QuanLyBanHang. Trong nhóm quyền này có một user là DangLH

Bước 1: Tạo nhóm quyền

Use QuanLyBanHang --Chọn cơ sở dữ liệu
Create role xemdulieu

Bước 2: Cấp quyền cho nhóm

Grant select to xemdulieu

Bước 3: Tạo login tên DangLH, mật khẩu Abc12345

Create Login DangLH With Password = 'Abc12345'

Bước 4: Tạo user DangLH sử dụng login DangLH

Use QuanLyBanHang --Chọn cơ sở dữ liệu
Create User DangLH For Login DangLH

Bước 5: Thêm usser DangLH vào nhóm xemdulieu

Sp_addRoleMember 'xemdulieu', 'DangLH'

Luu ý: Đăng nhập vào tài khoản DangLH để kiểm tra quyền đã được cấp cho nhóm xemdulieu

Bảo mật cơ sở dữ liệu sql server – Bài tập thực hành số 2

Câu 1: Tạo tài khoản

1.1 Tạo tài khoản đăng nhập SQLServer với tên đăng nhập là nhanvien và password là 123456

1.2 Tạo tài khoản đăng nhập SQLServer với tên đăng nhập là giamdoc và password là giamdoc

1.3 Tạo login có tên là thukho với password là thukho

Câu 2: Tạo người dùng

2.1 Tạo người dùng có tên nhanvien với tài khoản đăng nhập là nhanvien

2.2 Tạo người dùng có tên giamdoc với tài khoản đăng nhập là giamdoc

2.3 Tạo người dùng tên thukho với tên login là thukho

Câu 3: Cấp quyền

3.1 Cấp quyền cho những người dùng có tên là : nhanvien, giamdoc quyền thực thi các câu lệnh SELECT, INSERT và UPDATE trên bảng VATTU.

3.2 Cho phép những người dùng nhanvien, giamdoc quyền xem : năm tháng, mã vật tư, số lượng đầu, số lượng cuối trên bảng TONKHO (cột NAMTHANG, MAVTU, SLDAU, SLCUOI của bảng TONKHO).

3.3 Cấp quyền cho những người dùng nhanvien, giamdoc quyền SELECT, INSERT, UPDATE, DELETE trên bảng NHACC (Nhà cung cấp).

3.4 Cho phép người dùng thukho quyền xem dữ liệu trên bảng TONKHO, đồng thời có thể cấp lại quyền này cho những người dùng khác

3.5 Cấp quyền tạo cơ sở dữ liệu (Create Database) và tạo bảng (Create Table) cho người dùng có tên là giamdoc.

Bảo mật cơ sở dữ liệu sql server – Bài tập thực hành số 3

Câu 1: Sử dụng tài khoản với quyền quản trị thực hiện tạo login, user và cấp quyền

1.1 Tạo login tên admin1, mật khẩu Abc12345

1.2 Tạo user thuộc cơ sở dữ liệu master (Databases->System Databases->master)

1.3 Cấp quyền tạo cơ sở dữ liệu, tạo bảng và quyền tạo login cho admin1

Câu 2: Sử dụng tài khoản admin1 và thực hiện các yêu cầu sau

2.1 Tạo CSDL QuanLyNhanSu

File Size MaxSize FileGrowth
Data 100 Không giới hạn 50
Log 300 Không giới hạn 100

2.2 Tạo bảng NhanVien và LuongNV thuộc CSDL QuanLyNhanSu

Bảng NhanVien

Tên cột Kiểu dữ liệu Số kí tự Ghi chú
MaNv varchar 20 Khóa chính
TenNv nvarchar 100
NgaySinh varchar 10
NoiSinh nvarchar 50

Bảng LuongNV

Tên cột Kiểu dữ liệu Số kí tự Ghi chú
MaNv varchar 20 Khóa chính
NamThang varchar 7
Luong float

2.3 Tạo login chứng thực SQL Server (SQL Server Authencation)

Tên login Mật khẩu
LyNT Abc12345
HungNT Abc12345

2.4 Tạo user

Tên user Tên login
LyNT LyNT
HungNT HungNT

2.5 Cấp quyền

Tên user Tên bảng Quyền được cấp
LyNT NhanVien, LuongNV Thêm, xóa dữ liệu
HungNT NhanVien Chỉ được phép xem MaNv,TenNV và cấp lại quyền.
Cập nhật dữ liệu và cấp lại quyền.

Câu 3: Thiết lập ràng buộc dữ liệu

3.1 Giá trị cho cột ngày sinh không được lớn hơn ngày hiện hành
3.2 Giá trị cho cột lương không được nhỏ hơn 0

Bảo mật cơ sở dữ liệu sql server – Bài tập thực hành số 4

Câu 1: Tạo database tên QuanLyDaoTao

File Size MaxSize FileGrowth
Data 100 Không giới hạn 10
Log 300 Không giới hạn 30

Câu 2: Tạo các bảng thuộc CSDL QuanLyDaoTao

Bảng Lop

Tên cột Kiểu dữ liệu Số kí tự Ghi chú
MaLop varchar 20 Khóa chính
TenLop nvarchar 100

Bảng SinhVien

Tên cột Kiểu dữ liệu Số kí tự Ghi chú
MaSv varchar 20 Khóa chính
TenSv nvarchar 100
NgaySinh varchar 10
NoiSinh nvarchar 50
MaLop varchar 20 Khóa ngoại

Bảng MonHoc

Tên cột Kiểu dữ liệu Số kí tự Ghi chú
MaMh varchar 20 Khóa chính
TenMh nvarchar 100
SoGio int

Bảng DiemTP

Tên cột Kiểu dữ liệu Số kí tự Ghi chú
MaSv varchar 20 Khóa chính
MaMh varchar 20
Diem float

Câu 3: Thiết lập ràng buộc dữ liệu

Câu 4: Thêm dữ liệu cho các bảng

Bảng Lop

MaLop TenLop
CN0201 Khóa 2001
CN0202 Khóa 2002

Bảng SinhVien

MaSv TenSv NgaySinh(dd/mm/yyyy) NoiSinh MaLop
sv01 Nguyễn Văn Hưng 12/02/1988 Hồ Chí Minh CN0201
sv02 Lê Hùng 17/03/1990 Bình Dương CN0201
sv03 Lê Hùng 02/12/1991 Bình Dương CN0202

Bảng MonHoc

MaMh TenMh SoGio
THVP Tin học văn phòng 45
THDC Tin học đại cương 45
CSDL Cơ sở dữ liệu 30

Bảng DiemTP

MaSv MaMh Diem
sv01 THVP 8.0
sv01 THDC 7.0
sv01 CSDL 6.0
sv02 THVP 9.0
sv02 THDC 4.0
sv02 CSDL 7.0
sv03 THVP 5.0
sv03 THDC 5.0
sv03 CSDL 5.0

Câu 5: Cấp quyền

bao mat co so du lieu sql server 12

5.1 Tạo các nhóm quyền thuộc CSDL QuanLyDaoTao tương ứng với các phòng ban như mô tả trên

5.2 Cấp quyền cho các phòng ban trên CSDL QuanLyDaoTao

Ban Giam Hiệu được phép xem tất dữ liệu tất cả các bảng của database

Khoa Mạng Truyền Thông được phép xem trên bảng SINHVIEN, LOP

Khoa Kỹ thuật phần mềm đươc phép xem, thêm, xóa và cập nhật dữ liệu trên bảng SINHVIEN, LOP, MONHOC

Khoa Tài chính kế toán chỉ được phép xem dữ liệu trên bảng DiemTP

Phòng Đào tạo được phép xem,thêm,xóa và cập nhật dữ liệu trên tất cả các bảng của database

5.3 Tạo danh sách nhân sự cho các phòng ban (Lưu ý tất cả tài khoản phải đổi mật khẩu trong lần đăng nhập đầu tiên)

Ban Giám Hiệu

Tên Mật khẩu
AnhNH Abc12345
HoangNT Abc12345

Khoa Mạng Truyền Thông

Tên Mật khẩu
TrungDM Abc12345
CongND Abc12345
DangNS Abc12345

Khoa Kỹ thuật phần mềm

Tên Mật khẩu
ThuatDV Abc12345
DatDT Abc12345
NguyenTT Abc12345

Khoa Tài chính kế toán

Tên Mật khẩu
TuanTV Abc12345
DieuNT Abc12345
GiangNN Abc12345

Phòng Đào tạo

Tên Mật khẩu
TramNTH Abc12345
ThuyLT Abc12345

Trả lời