2

特定のデータベースのすべてのユーザーを一覧表示したいと考えています。

sys.server_principals または sys.sysmembers システム ビューを使用すると、SQL Server Management Studio のオブジェクト ブラウザーの [セキュリティ] -> [ユーザー] リストに表示されるすべてのユーザーがリストされません。

これが私が試みたものです:

USE [Database_Name];

SELECT user_name([memberuid]) as [Username]
FROM [sys].[sysmembers];

USE [Database_Name];

SELECT [name]
FROM [sys].[server_principals];

ありがとう!

4

1 に答える 1

3

sysmembersまたはこれを使用しないでください。sysusersすべてのsys___ビューは下位互換性のあるビューであり、(a)ある時点で製品から削除され、(b)必ずしも現在の情報が含まれるとは限りません。

データベースプリンシパルを探している場合は、調べないでsys.server_principals、調べてくださいsys.database_principals

USE your_database;
GO

SELECT name, create_date, type_desc
  FROM sys.database_principals
  WHERE is_fixed_role = 0;

これには、、、、、などが含まguestれます。ただし、明示的なプリンシパルを定義しなくても、データベースに対する固有の権限を持つアカウントは含まれません。INFORMATION_SCHEMAdbopublicsyssa

于 2013-03-05T15:33:59.877 に答える