SQL Server 2016データベースにデータをアップロードするためにGUIツールを使用しています。上記のタスクに使用されているユーザーには、上記のデータを格納するための専用スキーマを作成したsysadmin権限が付与されています。このスキーマは所有されており、デフォルトで上記のユーザーに設定されています。問題は、専用のスキーマではなくdboスキーマに保存されているデータをアップロードするときに、このユーザーからsysadmin privを取り消すことができなかったことです。
Sysadmin privを取り消さずにこの専用スキーマにデータをアップロードする方法を教えてください。
ありがとう
sysadmin
固定サーバーロールのメンバーがdbo
以外のスキーマを使用する唯一の方法は、スキーマ名でオブジェクト名を明示的に修飾することです。
CREATE TABLE MySchema.TableName (...
の代わりに:
CREATE TABLE TableName (...
これを回避する方法はありません。 ALTER USER のドキュメント(「備考」セクションにあります)には、以下についての注記もあります。
????重要
ユーザーがsysadmin固定サーバーロールのメンバーである場合、DEFAULT_SCHEMAの値は無視されます。 sysadmin固定サーバーロールのすべてのメンバーは、
dbo
の既定のスキーマを持っています。
これは、sysadmin
固定サーバーロールのメンバーであるログイン(インスタンスレベル)が、すべてのデータベースでdbo
ユーザー(データベースレベル)になるためです。これを確認するには、sa
であるsysadmin
以外のログインとしてログインし、次を実行します。
SELECT SYSTEM_USER AS [Login], CURRENT_USER AS [User];