2013-01-03 30 views
9

Trong Sql Server 2000, có thể trả về, thông qua truy vấn SQL, danh sách đầy đủ các vai trò cơ sở dữ liệu tồn tại trong cơ sở dữ liệu đã cho không?Làm cách nào để truy vấn danh sách vai trò cơ sở dữ liệu trong cơ sở dữ liệu SQL Server 2000?

Tôi biết có thể thấy các vai trò này bằng cách mở rộng các nút Vai trò bảo mật, Vai trò và Cơ sở dữ liệu trong SQL Server Management Studio, nhưng tôi muốn đưa chúng qua truy vấn mà tôi có thể phân tích cú pháp theo chương trình.

Screenshot of the nodes in question

Để làm rõ, tôi không tìm kiếm một danh sách người dùng với vai trò của mình, nhưng chỉ là danh sách các vai trò bản thân.

Trả lời

16

Mỗi cơ sở dữ liệu trong SQL Server 2000 có một sysusers system table

Có lẽ cái gì đó như

Use <MyDatabase> 

Select 
    [name] 
From 
    sysusers 
Where 
    issqlrole = 1 

sẽ làm các trick

+0

tôi đã không nhận ra rằng sysusers bao gồm vai trò cũng như người dùng. Tôi đã kiểm tra mã của bạn và nó thực sự trả về dữ liệu chính xác. Cảm ơn nhiều! –

+0

một địa điểm thú vị để đặt nó. – granadaCoder

+1

*** NB *** 'sys.sysusers' không được chấp nhận. Từ năm 2008 nên sử dụng ['sys.database_principles'] (https://msdn.microsoft.com/en-gb/library/ms187328.aspx). – Richard

Các vấn đề liên quan