Create table CompanyProducts.ProductPrice (id int, Price money) go insert into CompanyProducts.ProductPrice select 1,7000 go insert into CompanyProducts.ProductPrice select 2,1000 go insert into CompanyProducts.ProductPrice select 3,1000 go insert into CompanyProducts.ProductPrice select 4,2500 go Khi Mr.Smith là một người quản trị cơ sở dữ liệu, anh ấy log on tới Management Studio sử dụng SA để đăng nhập. Mr.Smith thực thi các câu lệnh dưới để tạo một tài khoản đăng nhập và người dùng cho Ms.Shiraishi use master go create login Shiraishi with password ='Sh!r@!sh!' go create login [SQL2005\Shiraishi] from windows go use CompanyProducts go Create user SQL_Shiraishi for LOGIN Shiraishi go Create user WIN_Shiraishi for LOGIN [SQL2005\Shiraishi] go GRANT SELECT on CompanyProducts.Products to SQL_Shiraishi,WIN_Shiraishi go DENY SELECT on CompanyProducts.ProductPrice to SQL_Shiraishi,WIN_Shiraishi Go Mr.Smith muốn kiểm tra quyền cấp phép cho cả đăng nhập SQL và Windows của Ms.Shiraishi. Khi đăng nhập SQL đã được tạo bởi Smith, anh ấy sẽ biết password đăng nhập Shiraishi và có thể kiểm tra quyền cấp phép trong Login bằng cách sử dụng tiện ích SQLCMD hoặc Management Studio. Thật không hay là SQL2005\Shiraishi là một đăng nhập Windows và Mr.Smith (hay bất kỳ một người quản trị hệ thống nào) cũng không có password. Chỉ Ms.Shiraishi là có nó và tất nhiên là không thể tự dưng hỏi một người nào đó password của họ được. Mr.Smith có thể kiểm tra các cấp phép trong cả đăng nhập SQL và Windows bằng cách sử dụng câu lệnh EXECUTE AS mới trong SQL Server 2005, vậy là vấn đề trên đã được giải quyết. use CompanyProducts go Execute as user = 'SQL_Shiraishi' select * from CompanyProducts.Products RESULT 1 Refrigerator 2 Washing Machine 3 Dryer 4 Lawn Mower select * from CompanyProducts.ProductPrice RESULT Msg 229, Level 14, State 5, Line 1 SELECT permission denied on object 'ProductPrice', database 'CompanyProducts', schema 'CompanyProducts'. Mr.Smith mở cửa sổ truy vấn mới và thực thi các câu lệnh dưới đây Execute as user = 'WIN_Shiraishi' select * from CompanyProducts.Products RESULT 1 Refrigerator 2 Washing Machine 3 Dryer 4 Lawn Mower select * from CompanyProducts.ProductPrice RESULT Msg 229, Level 14, State 5, Line 1 SELECT permission denied on object 'ProductPrice', database 'CompanyProducts', schema 'CompanyProducts'. Kết luận Trong bài này, chúng tôi đã giải thích tác dụng của câu lệnh EXECUTE AS mới trong SQL Server 2005. Nó sẽ rất có ích cho các quản trị viên cơ sở dữ liệu khi cần kiểm tra các cấp phép của một người dùng cụ thể. . Windows bằng cách sử dụng câu lệnh EXECUTE AS mới trong SQL Server 2005, vậy là vấn đề trên đã được giải quyết. use CompanyProducts go Execute as user = &apos ;SQL_ Shiraishi' select. 'ProductPrice', database 'CompanyProducts', schema 'CompanyProducts'. Kết luận Trong bài này, chúng tôi đã giải thích tác dụng của câu lệnh EXECUTE AS mới trong SQL Server 2005 'ProductPrice', database 'CompanyProducts', schema 'CompanyProducts'. Mr.Smith mở cửa sổ truy vấn mới và thực thi các câu lệnh dưới đây Execute as user = 'WIN_Shiraishi'