一部のデータベースのみを作成、復元、削除するSQL Server権限


17

MS SQL Server 2008 R2では、DBCC CHECKDBを作成、復元、およびデータベースを削除できるユーザーが必要です。ただし、サーバー上の指定されたデータベースにアクセスしたり削除したりすることはできません(セキュリティ上の理由)。この設定は可能ですか?


あなたはここにいくつかのヒントを得ることができます:toadworld.com/platforms/sql-server/w/wiki/...
dezso

回答:


27

はい、それはいくつかの許可によって可能です。

最初にデータベースを作成するには、サーバーレベルのアクセス許可を付与する必要がありますCreate Any Database。この許可は、データベースを作成する権限であるように聞こえます。これにより、dbcreatorの固定サーバーロールがログインに与えられないことに注意してください。その固定サーバーロールは、任意のデータベースに対する変更/削除の許可を与えるためです。ログインで、所有するデータベースのみを管理できます。これにより、復元することもできます。Create Any Database

(そうすることによって、「任意のデータベース作成」ONLY -新しいデータベースを作成する機能を与えますが、ドロップまたは変更する能力を避けているANYあなたはdbcreator固定サーバーロールを使用して取得したいというデータベース)

この「データベースの作成」権限を付与するには-

use [master]
GO
GRANT CREATE ANY DATABASE TO [LoginName]
GO

DBCC CHECKDBデータベースを実行および削除する機能については、固定データベースロールdb_ownerで十分です。これは、あなたが要求しているものすべてを付与します。注:また、このユーザーにを使用して、選択、削除、切り捨て、更新、挿入の機能を付与していますdb_owner。これsysadminはデータベース内にあると考えるのが好きです。

この権限を適用する予定のデータベースにのみ、この権限を適用します。これにより、ユーザーがドロップ、復元、またはcheckdbできるデータベースを制御できます。これらの権限をユーザーに付与していないデータベースは、このユーザーがこれらのアクションを実行しても安全です

これを行うには、まずログインをデータベースユーザーにマップします。

USE [DatabaseName]
GO
CREATE USER [UserName] FOR LOGIN [LoginName] 
GO

そして、そのユーザーをdb_ownerロールに追加します(SQL Server 2012以降で動作します)。

ALTER ROLE [db_owner] ADD MEMBER [frank]
GO

SQL Server 2008の場合は、システムストアドプロシージャを使用して、以下に正しく指摘されているロールメンバーをコメント作成者として追加する必要があります。

EXEC sp_addrolemember 'db_owner', 'frank';

GUIを使用してこれらすべてを実行することもできます。インスタンスレベルでSSMSのセキュリティフォルダーを介して行うログイン情報:ログイン->プロパティ->セキュリティ保護可能を右クリックします。データベースレベルの場合は、データベースレベルでセキュリティフォルダーを介して実行します。右クリックして新しいユーザーを選択->サーバーログインのリストからユーザーにログインを選択/データベースユーザーに名前を付けます-> [メンバーシップ]タブで、ロールメンバーシップを選択します。

SQL ServerのヘルプシステムであるBooks Onlineは、ほとんどのアクセス許可の質問にも素晴らしいリソースです-他のアクセス許可を割り当てる必要があると判断した場合。アクセス許可を付与するT-SQLコマンドを検索するだけで、通常、このアクションを実行するために必要なアクセス許可を通知する記事にそのコマンドのアクセス許可セクションがあります。例については、DBCC CHECKDBの記事をご覧ください。記事の約7/8の部分が権限セクションです。


3
Iだろうちょうどのようなことを追加するにALTER ROLE [db_owner] ADD MEMBER [frank]は、SQL Server 2008のいずれかである場合のみ、SQL Serverの2012年からの作品はSPで行く必要がありますEXEC sp_addrolemember 'db_owner', 'frank';(参考文献ここここ
superjos
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.