Chuyên đề về 1 HQTCSDL (CT323)
Quản trị người dùng và bảo mật
dữ liệu trong SQL SERVER
Khoa CNTT-TT
Cấu trúc bảo mật (security
architecture)
Chế độ xác thực (Authentication
Mode)
•
Windows Authentication Mode (Windows
Authentication)
•
Mixed Mode (Windows Authentication and SQL Server
Authentication)
Windows Authentication
Screen clipping taken: 18/02/2009; 22:11
SQL Server Authentication
Xác thực quyền (Permission
validation)
Cấu trúc bảo mật phân cấp
(Hierarchical security)
Danh mục các roles
Fixed server role Description
sysadmin Thành viên có quyền truy cập đầy đủ để
quản lý SQL Server và có thể thực hiện bất
kỳ hành động nào.
serveradmin Thành viên của vai trò này có thể thay đổi
cấu hình máy chủ toàn và tắt máy chủ.
setupadmin Thành viên có thể thêm và loại bỏ các máy
chủ liên kết.
securityadmin Thành viên có thể quản lý thông tin đăng
nhập SQL, bao gồm cả việc thay đổi và đặt
lại mật khẩu khi cần thiết, cũng như quản lý
GRANT, REVOKE, và DENY ở cấp máy chủ và
CSDL.
processadmin Thành viên có thể quản lý và kết thúc các
quá trình trên SQL Server.
dbcreator Có thể tạo, sửa, và xóa CSDL.
diskadmin Có thể quản lý tập tin trên đĩa.
bulkadmin Có thể thực thi lệnh BULK INSERT.
Danh mục các roles
Fixed database role Description
db_owner Có tất cả quyền trong CSDL.
db_accessadmin Có thể thêm hoặc bỏ truy cập của users.
db_securityadmin Có thể quản lý tất cả các quyền, quyền sở hữu đối
tượng, vai trò và vai trò thành viên.
db_ddladmin Can issue ALL DDL, but cannot issue GRANT,
REVOKE, or DENY statements.
db_backupoperator Can issue DBCC, CHECKPOINT, and BACKUP
statements.
db_datareader Can select all data from any user table in the
database.
db_datawriter Can modify any data in any user table in the
database.
db_denydatareader Cannot select any data from any user table in the
database.
db_denydatawriter Cannot modify any data in any user table in the
database.
Adding a SQL Server Login
•
Thêm mới một tài khoản đăng nhập
–
Đăng nhập bằng tên và mật khẩu
–
Nếu SQL Server được thiết lập hoạt động ở
chế độ kết hợp (Mixed Mode).
Adding a SQL Server Login
•
Khuyến khích áp dụng trong các trường hợp
–
Có sử dụng dữ liệu nạp từ các HQTCSDL
khác.
–
Ứng dụng thiết kế cho nhiều đối tượng sử
dụng mà không thể đăng nhập thông qua
xác thực Window.
Tài khoản quản trị (System
Administrator (sa))
•
Được gán sysadmin fixed server role
•
Không thể thay đổi
•
Chỉ nên dùng khi không có cách nào khác để đăng
nhập
•
Có thể thay đổi mật khẩu trong quá trình cài đặt
Database owner (dbo)
•
Có quyền thực hiện tất cả các thao tác trên CSDL
•
Thành viên của sysadmin fixed server role sẽ đóng vai
trò là dbo của CSDL đó
•
Đối tượng được tạo bởi Thành viên của sysadmin
fixed server role sẽ thuộc vào dbo
•
Không thể xóa người dùng dbo
•
Tồn tại đối với mọi CSDL
Database Object Owner
•
Người dùng tạo các đối tượng của CSDL
•
Không có tài khoản đăng nhập và mật khẩu riêng
•
Có mọi quyền trên đối tượng CSDL do mình tạo nhưng
phải thiết lập quyền cho các người dùng khác
•
Truy cập đối tượng tạo bởi người dùng khác
–
Cung cấp tên chủ thể của đối tượng
guest User
•
Tài khoản cho phép đăng nhập vào một CSDL
•
Điều kiện
–
Tài khoản có thể đăng nhập vào thể hiện
của SQL Server, nhưng không đăng nhập
được vào một CSDL cụ thể
–
CSDL cho phép guest User đăng nhập
Public role
•
Mọi database users đều thuộc vào
•
Quyền
–
Tất cả các quyền được SQL Server thiết lập
mặc định
–
Không bao gồm người dùng, nhóm người
dùng, roles khác
–
Tồn tại ở mọi CSDL
–
Không xóa được
Viewing Logins
•
Chức năng
–
Xem các người dùng của từng CSDL tương
ứng với tài khoản đăng nhập
–
Ngôn ngữ và CSDL mặc định hiển thị khi
user kết nối vào
–
Không xem được mật khẩu (ngoại trừ mật
khẩu = null)
Viewing Logins
•
Transact-SQL
–
sp_helplogins
•
sp_helplogins [ LoginName ]
•
Nếu LoginName không có thì tất cả các tài khoản
đăng nhập được liệt kê
•
Enterprise manager
Creating Logins
•
CREATE LOGIN statement:
•
CREATE LOGIN [name] {WITH <options> | FROM
<source>}
•
VD: CREATE LOGIN Bill WITH PASSWORD =
‘P@ssw0rd’ HASHED
•
SELECT LOGINPROPERTY(’bill’, ‘passwordhash’)
Modifying Logins
•
Sửa tài khoản đăng nhập SQL Server
–
ALTER LOGIN name {<status> | WITH
<options>}
–
Ví dụ
VD: ALTER LOGIN Bill WITH PASSWORD =
‘newpassword’, CHECK_POLICY=OFF;
Removing Logins and Users
•
Tài khoản đăng nhập Window
–
Xóa hoặc cập nhật thông qua công cụ của
HĐH
•
Tài khoản đăng nhập SQL Server
–
Loại bỏ User này khỏi SQL Server database
roles
–
Xóa User
Removing Logins and Users
•
Xóa một đăng nhập SQL Server
–
DROP LOGIN [name]
–
Ví dụ
•
DROP LOGIN ‘Bill’
CREATE USER
•
CREATE USER name [{{FOR | FROM} source |
WITHOUT LOGIN] [WITH DEFAULT_SCHEMA =
schema_name]