Tải bản đầy đủ (.pdf) (5 trang)

Câu lệnh EXECUTE AS trong SQL Server 2005- P2 pdf

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (130.31 KB, 5 trang )

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ể.


×