特定のデータベースに対するDB_Owner権限を持つユーザーがいます。次に、そのユーザーは自分用にリンクサーバーを作成する必要があります。リンクサーバーを作成するために、サーバーレベルでそのユーザーにどのレベルのアクセス許可を付与する必要がありますか?sysadminアクセスを付与したくありません。私は次のアクセス権を付与しました:ログインへの制御サーバーの付与、ログインへのリンクサーバーの変更の付与
しかし、リンクサーバーを作成するために機能しませんでした。
SQL Serverリンクサーバーを作成するためにsysadmin
を使用する必要はありません。
権限ALTER ANY LINKED SERVER
およびALTER ANY LOGIN
をログインアカウントに割り当てると、アクションを完了できます。
master.dbo.sp_addlinkedserverでリンクサーバーを作成します
ALTER ANY LINKED SERVER権限が必要です
Master.dbo.sp_dropserverを使用してリンクサーバーを削除します。 ALTER ANY LINKED SERVER権限が必要です
master.dbo.sp_addlinkedsrvlogin
を使用して、リモートサーバーとのローカルログインのマッピングを作成します。
コード例:権限の割り当て
USE master;
GRANT ALTER ANY LINKED SERVER TO MYLOGINACCT;
GO
USE master;
GRANT ALTER ANY LOGIN SERVER TO MYLOGINACCT;
--An example of adding a Linked Server
EXEC sp_addlinkedserver
@server='Server1',
@srvproduct='',
@provider='SQLNCLI',
@datasrc='Server1\instance1'
---An example of dropping a Linked Server
EXEC master.dbo.sp_dropserver ‘Server1’
リンク: http://www.sqlserver-dba.com/2011/05/sql-server-linked-servers-and-user-permissions.html
Microsoft Docsから: https://docs.Microsoft.com/en-us/sql/relational-databases/linked-servers/create-linked-servers-sql-server-database-engine
セキュリティ許可
Transact-SQLステートメントを使用する場合は、サーバーに対するALTER ANY LINKED SERVER権限、またはsetupadmin固定サーバーロールのメンバーシップが必要です。 Management Studioを使用する場合、CONTROL SERVER権限またはsysadmin固定サーバーロールのメンバーシップが必要です。
そのことを念頭に置いて、それらのニーズを確認することをお勧めします。これにより、監査人に準拠し、リンクサーバーが危険にさらされることがなくなります。
リンクサーバーの作成が機能しない場合は、次のいずれかが考えられます。
共有できる特定のエラーはありますか?
Sp_addlinkedserverステートメントには、ALTER ANY LINKED SERVER権限が必要です。
新しいリンクサーバーのGUIにはsysadminが必要です... spは必要ありません。 ALTER SQL ANY LINKED SERVER以外はほとんどない新しいSQLログインで検証されました。