GV Phi Loan - Khoa CNTT – HUI 1
Policy-Based Management
• Policy-Based Management is a system for managing one or more instances of SQL Server 2012.
• Tạo các policy để quản l{ các thực thể trong server như các instance của SQL Server, databases, …
GV Phi Loan - Khoa CNTT – HUI 2
Tình huống 1
• Công ty A không cho phép nhân viên dùng
Database Mail. Policy được tạo ra để kiểm tra tình trạng server đối với DB mail.
• Administrator sẽ so sánh tình trạng server với
policy. Nếu tình trạng không đúng, administrator chọn Configure mode và để policy sẽ chuyển server về lại trạng thái thích hợp
GV Phi Loan - Khoa CNTT – HUI 3
Tình huống 2
• Quy ước cho DB AdventureWorks là tất cả stored procedures phải bắt đầu với k{ tự AW_. Một policy được tạo ra để thỏa quy ước này.
• Khi administrator test policy có thể nhận
được 1 list các stored procedure không đúng thỏa thuận. Các stored procedures được tạo sau đó nếu không theo đúng policy này sẽ bị báo lỗi.
GV Phi Loan - Khoa CNTT – HUI 4
Ba thành phần của PBM
• Policy management
– Administrator tạo các policy
• Explicit administration
– Administrators chọn 1 hay nhiều target và kiểm tra tường minh các target có tuân theo theo policy không
• Evaluation mode
GV Phi Loan - Khoa CNTT – HUI 5
Evaluation mode
• Bốn evaluation mode:
– On demand: đánh giá policy được xác định
bởi người dùng
– On change: prevent. (tự động): sử dụng DDL
trigger để tránh vi phạm policy
– On change: log only. (tự động): sử dụng event notification để đánh giá policy khi có thay đổi – On schedule. (tự động): sử dụng SQL Server
Agent job để đánh giá định kz policy.
GV Phi Loan - Khoa CNTT – HUI 6
Một số thuật ngữ
• PBM managed target • PBM facet • PBM condition • PBM policy
GV Phi Loan - Khoa CNTT – HUI 7
PBM managed target
• Là các thực thể (Entity) được quản l{ bởi
PBM như: – Instance of the SQL Server Database Engine – Database, table, hay index.
• Tất cả target trong 1 instance tạo thành
target hierarchy.
GV Phi Loan - Khoa CNTT – HUI 8
Policy-Based Management facet
• Mỗi loại target được đặc trưng bởi 1 tập
hợp các property.
• Số lượng và đặc tính của các property tạo
thành 1 facet – Chỉ có người tạo ra facet mới có thể thêm hay
bỏ đi các property khỏi 1 facet
• A target type can implement one or more management facets, and a management facet can be implemented by one or more target types.
GV Phi Loan - Khoa CNTT – HUI 9
Policy-Based Management condition
• Là 1 biểu thức logic xác định 1 tập các
trạng thái cho phép của target đối với 1 facet.
GV Phi Loan - Khoa CNTT – HUI 10
PBM policy
• Policy bao gồm condition và behavior
mong đợi như evaluation mode, target filters, và schedule.
• Một policy có thể chỉ chứa 1 condition. • Policy có thể enabled hay disabled. • Các policy được lưu trữ trong msdb
GV Phi Loan - Khoa CNTT – HUI 11
Effective policies
• Policy là hiệu quả đối với 1 target khi
thỏa mãn các điều kiện sau: – Policy là enabled. – Target thuộc về tập target của policy đó – Target hay 1 trong các ancestor của target
tuân theo 1 nhóm policy có chứa policy này.
GV Phi Loan - Khoa CNTT – HUI 12
Tạo và quản lý policy
• Chọn PBM facet chứa các property cần
được xác lập
• Định nghĩa condition cho trạng thái của
facet.
• Định nghĩa policy chứa condition và
evaluation mode.
• Kiểm tra xem instance của SQL Server có
phù hợp với policy không?
GV Phi Loan - Khoa CNTT – HUI 13
Ví dụ 1
• Scenario: We will create an on demand policy to ensure that all the databases have the Auto Shrink option set to True. By default, a database that is created has Auto Shrink set to False
GV Phi Loan - Khoa CNTT – HUI 14
Ví dụ 1
• B1: Tạo mới condition
– Đặt tên: Check auto shrink – Chọn facet là Database options – Biểu thức: @autoshrink = true
• B2: Tạo mới policy
– Đặt tên: AutoShrinkPolicy – Chọn check condition là condition vừa tạo – Xác định target: every database – Evaluation Mode là on demand
GV Phi Loan - Khoa CNTT – HUI 15
Ví dụ 1
• B3: Policy Manager đánh giá policy.
– Nhấp phải tại Policy “AutoShrinkPolicy” ,
chọn lệnh Evaluate
– Kết quả đánh giá cho thấy tất cả DB hiện có
đều không phù hợp với policy này
– Để CSDL nào tuân theo policy này, nhấp
chọn CSDL đó, rồi nhấp nút apply
GV Phi Loan - Khoa CNTT – HUI 16
Ví dụ 2
• Scenario: The scenario is ensuring that each user defined Stored Procedure created on the server is prefixed with ‘usp_%’. Let’s design a policy for this.
GV Phi Loan - Khoa CNTT – HUI 17
Ví dụ 2
• B1: Tạo mới condition
– Đặt tên:CheckProcName – Chọn facet là Stored Procedure – Biểu thức: @Name LIKE ‘usp_%’
• B2: Tạo mới policy – Đặt tên: ProcPolicy – Chọn check condition là condition vừa tạo – Xác định target: chọn every stored procedure in every
database
– Evaluation Mode là OnChange: Prevent – Đặt policy mới là Enable
GV Phi Loan - Khoa CNTT – HUI 18
Ví dụ 2
• B3: Policy Manager đánh giá policy.
– Tạo mới 1 stored procedure sau cho bất kz 1
CSDL nào đó
CREATE PROCEDURE TestProcPolicy AS BEGIN
PRINT 'HELLO WORLD !'
END Kết quả bị báo lỗi
GV Phi Loan - Khoa CNTT – HUI 19
Lưu ý
• Để tạo policy quy ước việc đặt tên bảng, có thể tạo condition trên những facet khác nhau như: – Table – Name – MultiPart Name,…
• Evaluation mode của mỗi facet có thể khác
nhau ( 2 facet đầu chỉ có 2 mode on demand và on schedule)
GV Phi Loan - Khoa CNTT – HUI 20
Tutorial 1: Administering Servers by Using Policy-Based Management • http://msdn.microsoft.com/en-us/library/bb522659(v=sql.100).aspx • Lesson 1: Create and Apply an Off By
Default Policy
• Lesson 2: Create and Apply a Naming
Standards Policy
GV Phi Loan - Khoa CNTT – HUI 21
Tutorial: Evaluating Best Practices by Using Policy-Based Management • http://msdn.microsoft.com/en-us/library/ee342165(v=sql.100).aspx • Lesson 1: Evaluate Best Practices on an
On-Demand Basis
• Lesson 2: Evaluate Best Practices Policies
on a Scheduled Basis
• C:\Users\Phi Loan\Documents\SQL Server Management Studio\Policies
GV Phi Loan - Khoa CNTT – HUI 22