Chay theo dung thu tu:
01_create_db.sql02_create_tables.sql03_create_procs.sql04_seed_and_tests.sql
| Cot | Kieu du lieu | Rang buoc / y nghia |
|---|---|---|
MANV |
VARCHAR(20) |
PK |
HOTEN |
NVARCHAR(100) |
NOT NULL |
EMAIL |
VARCHAR(20) |
NULL |
LUONG |
VARBINARY(MAX) |
Luong da ma hoa RSA_2048 |
TENDN |
NVARCHAR(100) |
UNIQUE, NOT NULL |
MATKHAU |
VARBINARY(32) |
SHA2_256(MK) |
PUBKEY |
VARCHAR(20) |
UNIQUE, luon = MANV |
| Cot | Kieu du lieu | Rang buoc / y nghia |
|---|---|---|
MALOP |
VARCHAR(20) |
PK |
TENLOP |
NVARCHAR(100) |
NOT NULL |
MANV |
VARCHAR(20) |
FK -> NHANVIEN(MANV) |
| Cot | Kieu du lieu | Rang buoc / y nghia |
|---|---|---|
MAHP |
VARCHAR(20) |
PK |
TENHP |
NVARCHAR(100) |
NOT NULL |
SOTC |
INT |
CHECK > 0 |
| Cot | Kieu du lieu | Rang buoc / y nghia |
|---|---|---|
MASV |
VARCHAR(20) |
PK |
HOTEN |
NVARCHAR(100) |
NOT NULL |
NGAYSINH |
DATETIME |
NULL |
DIACHI |
NVARCHAR(200) |
NULL |
MALOP |
VARCHAR(20) |
FK -> LOP(MALOP) |
TENDN |
NVARCHAR(100) |
UNIQUE, NOT NULL |
MATKHAU |
VARBINARY(32) |
SHA2_256 |
| Cot | Kieu du lieu | Rang buoc / y nghia |
|---|---|---|
MASV |
VARCHAR(20) |
PK(1), FK -> SINHVIEN(MASV) |
MAHP |
VARCHAR(20) |
PK(2), FK -> HOCPHAN(MAHP) |
DIEMTHI |
VARBINARY(MAX) |
Diem da ma hoa |
NHANVIEN.MANV,HOTEN,TENDN,MKkhong duoc rong khi goi SP insert.LUONGCBphai>= 0.TENDNtrongNHANVIENla unique.TENDNtrongSINHVIENla unique.PUBKEYluon bangMANV.- Chan xung dot
MANV/TENDNde tranh truy van ngu.
Input:
@MANV VARCHAR(20)@HOTEN NVARCHAR(100)@EMAIL VARCHAR(20)@LUONGCB BIGINT@TENDN NVARCHAR(100)@MK NVARCHAR(128)
Xu ly:
- Tao asymmetric key ten =
MANV, thuat toanRSA_2048, password =MK. HASHBYTES('SHA2_256', MK)->MATKHAU.ENCRYPTBYASYMKEY(public key cua MANV, LUONGCB)->LUONG.PUBKEY = MANV.
Output:
- Khong tra rowset. Thanh cong thi insert 1 dong vao
NHANVIEN.
Input:
@TENDN NVARCHAR(100)@MK NVARCHAR(128)
Luu y:
- Du ten tham so la
@TENDN, script hien ho tro truyenTENDNhoacMANV. - Ly do: de bai mau thuan giua mo ta tham so va vi du
EXEC.
Output rowset:
MANVHOTENEMAILLUONGCB(da giai ma)
NV11 / nvan / mkNV11NV12 / tbinh / mkNV12NV13 / lqhuy / mkNV13NV14 / pmkhoa / mkNV14NV15 / vtlong / mkNV15
- Script
04_seed_and_tests.sqlcleanup toan bo du lieu cac bang theo thu tu phu thuoc FK, sau do seed lai du lieu mau. - Mat khau
SINHVIENduoc bam bangSHA2_256. - Du lieu
BANGDIEM.DIEMTHIduoc ma hoa bang public key RSA_2048 cua nhan vien quan ly lop. - Script giu lai cac check dem so dong va 1 lenh test giai ma qua SP.
-- Lay thong tin nhan vien theo username
EXEC dbo.SP_SEL_PUBLIC_NHANVIEN N'nvan', N'mkNV11';
GO
-- Lay thong tin nhan vien theo MANV (duoc ho tro)
EXEC dbo.SP_SEL_PUBLIC_NHANVIEN N'NV11', N'mkNV11';
GO
-- Xem lop do nhan vien quan ly
SELECT MALOP, TENLOP, MANV
FROM dbo.LOP
WHERE MANV = 'NV11';
GO
-- Xem danh sach sinh vien cua mot lop
SELECT MASV, HOTEN, NGAYSINH, DIACHI, MALOP, TENDN
FROM dbo.SINHVIEN
WHERE MALOP = 'L01';
GO
-- Xem bang diem dang ma hoa (raw)
SELECT MASV, MAHP, DIEMTHI
FROM dbo.BANGDIEM
WHERE MASV = 'SV01';
GO
-- Test loi sai mat khau giai ma
-- EXEC dbo.SP_SEL_PUBLIC_NHANVIEN N'nvan', N'saiMK';
GODa bo sung them trong 03_create_procs.sql (co comment ADD(d)):
dbo.SP_LOGIN_NHANVIEN: Dang nhap theoMANV, MATKHAU.dbo.SP_LOP_LIST_BY_MANV: Lay danh sach lop do nhan vien quan ly.dbo.SP_LOP_INSERT_BY_MANV: Them lop moi, lop do nhan vien dang nhap quan ly.dbo.SP_LOP_UPDATE_BY_MANV: Sua lop (chi lop thuoc nhan vien dang nhap).dbo.SP_LOP_DELETE_BY_MANV: Xoa lop (chi lop thuoc nhan vien dang nhap, va chua co sinh vien).dbo.SP_SINHVIEN_LIST_BY_LOP_MANV: Xem sinh vien cua lop thuoc nhan vien dang nhap.dbo.SP_SINHVIEN_INSERT_BY_MANV: Them sinh vien vao lop nhan vien dang nhap quan ly.dbo.SP_SINHVIEN_UPDATE_BY_MANV: Sua sinh vien trong pham vi lop nhan vien dang nhap quan ly.dbo.SP_SINHVIEN_DELETE_BY_MANV: Xoa sinh vien trong pham vi lop nhan vien dang nhap quan ly.dbo.SP_BANGDIEM_UPSERT_BY_MANV: Them/cap nhat diem thi, diem duoc ma hoa bang Public Key cua nhan vien dang nhap.dbo.SP_BANGDIEM_LIST_BY_MANV: Xem bang diem da giai ma (trong pham vi lop quan ly).
Thu muc moi: python_app/
python_app/app.py: Man hinh dang nhap + quan ly lop + quan ly sinh vien theo lop + nhap bang diem.python_app/requirements.txt: Dependency Python.
cd dbsec3/python_app
pip install -r requirements.txtpython app.pyLuu y:
- Chinh sua bien
CONN_STRtrongpython_app/app.pytheo SQL Server tren may ban. - App su dung cac SP trong
03_create_procs.sql, can chay day du script SQL truoc.