Database Edition に必要なアクセス許可

Visual Studio Team System Database Edition でデータベースに対してアクションを実行するには、そのデータベースに対する特定のアクセス許可を持つアカウントでログオンする必要があります。 どのような特定のアクセス許可が必要かは、実行するアクションによって異なります。 以下のセクションでは、実行するアクションと、各アクションを実行するために必要な特定のアクセス許可について説明します。

  • データベースを作成および配置するためのアクセス許可

  • データベースをリファクタリングするためのアクセス許可

  • データベースに対して単体テストを実行するためのアクセス許可

  • データを生成するためのアクセス許可

  • スキーマおよびデータを比較するためのアクセス許可

  • Transact-SQL (T-SQL) エディタを実行するためのアクセス許可

データベースを作成および配置するためのアクセス許可

データベースを作成または配置するには、次のアクセス許可が必要です。

アクション

必要なアクセス許可

データベース オブジェクトおよび設定のインポート

ソース データベースに接続できる必要があります。

  • ソース データベースが SQL Server 2000 に基づいている場合は、そのデータベースのユーザーである必要があり、さらに dbo.sysproperties テーブルの SELECT アクセス許可を持っている必要があります。

  • ソース データベースが SQL Server 2005 に基づいている場合は、各オブジェクトを所有しているか、各オブジェクトに対する VIEW DEFINITION アクセス許可を持っている必要があります。

  • ソース データベースが SQL Server 2008 に基づいている場合は、各オブジェクトを所有しているか、各オブジェクトに対する VIEW DEFINITION アクセス許可を持っている必要があります。 ログインに、データベース暗号化キーに対する VIEW SERVER STATE アクセス許可が与えられている必要があります。

サーバー オブジェクトおよびサーバー設定のインポート

特定のサーバーの "マスタ" データベースに接続できる必要があります。

  • サーバーが SQL Server 2000 を実行中の場合は、そのデータベースのユーザーである必要があり、さらに dbo.sysproperties テーブルの SELECT アクセス許可を持っている必要があります。 ログインが、sysadmin ロールのメンバである必要があります。

  • サーバーが SQL Server 2005 を実行中の場合は、サーバーに対する VIEW ANY DEFINITION アクセス許可を持っている必要があります。 データベースにリンク サーバーが含まれている場合は、ALTER ANY LINKED SERVER アクセス許可も必要です。

  • ソース データベースが SQL Server 2008 に基づいている場合は、各オブジェクトを所有しているか、各サーバーに対する VIEW ANY DEFINITION アクセス許可を持っている必要があります。 データベースにリンク サーバーが含まれている場合は、ALTER ANY LINKED SERVER アクセス許可も必要です。ログインに、データベース暗号化キーに対する VIEW SERVER STATE アクセス許可が与えられている必要があります。

データベース プロジェクトの作成または更新

データベース プロジェクトを作成または変更するために必要なデータベース アクセス許可はありません。

新しいデータベースの配置、または [データベースを常に再作成] をオンにした配置

CREATE DATABASE アクセス許可を持っているか、ターゲット サーバーの dbcreator ロールのメンバである必要があります。

既存のデータベースへの更新の配置

有効なデータベース ユーザーである必要があります。 また、db_ddladmin ロールのメンバであるか、スキーマを所有しているか、ターゲット データベースの作成または変更するオブジェクトを所有している必要があります。 配置前スクリプトや配置後スクリプトでログイン サーバーやリンク サーバーなどの高度な概念を使用する場合は、さらに別のアクセス許可が必要です。

データベース プロジェクトの EXTERNAL_ACCESS オプションが設定されたアセンブリの使用

データベース プロジェクトの TRUSTWORTHY プロパティを設定する必要があります。 SQL Server ログインに EXTERNAL ACCESS ASSEMBLY アクセス許可が与えられている必要があります。

新規または既存のデータベースへのアセンブリの配置

配置先サーバーの sysadmin ロールのメンバである必要があります。

詳細については、「SQL Server 2005 オンライン ブック」または「SQL Server 2000 オンライン ブック」を参照してください。

データベースをリファクタリングするためのアクセス許可

データベース リファクタリングは、データベース プロジェクト内でのみ発生します。 データベース プロジェクトを使用するためのアクセス許可が必要です。 変更をターゲット データベースに配置するまでは、ターゲット データベースに対するアクセス許可は必要ありません。

データベースに対して単体テストを実行するためのアクセス許可

データベースに対して単体テストを実行するには、次のアクセス許可が必要です。

アクション

必要なアクセス許可

テスト アクションの実行

実行コンテキストのデータベース接続を使用する必要があります。 詳細については、「接続文字列とアクセス許可の概要」を参照してください。

テスト前アクションまたはテスト後アクションの実行

特権コンテキストのデータベース接続を使用する必要があります。 このデータベース接続では、実行コンテキスト接続よりも多くのアクセス許可が認められます。

TestInitialize スクリプトと TestCleanup スクリプトの実行

特権コンテキスト データベース接続を使用する必要があります。

テスト実行前のデータベースの変更の配置

特権コンテキスト データベース接続を使用する必要があります。 詳細については、「方法 : データベース単体テストの実行を構成する」を参照してください。

テスト実行前のデータ生成

特権コンテキスト データベース接続を使用する必要があります。 詳細については、「方法 : データベース単体テストの実行を構成する」を参照してください。

データを生成するためのアクセス許可

データ ジェネレータを使用してテスト データを生成するには、ターゲット データベースのオブジェクトに対する INSERT および SELECT アクセス許可を持っている必要があります。 データを生成する前にデータをパージする場合は、ターゲット データベースのオブジェクトに対する DELETE アクセス許可も必要です。 テーブルの IDENTITY 列をリセットするには、そのテーブルを所有しているか、db_owner または db_ddladmin ロールのメンバである必要があります。

スキーマおよびデータを比較するためのアクセス許可

スキーマまたはデータを比較するには、次のアクセス許可が必要です。

アクション

必要なアクセス許可

2 つのデータベースのスキーマの比較

「データベースを作成および配置するためのアクセス許可」に説明されているように、データベースからオブジェクトと設定をインポートするためのアクセス許可を持っている必要があります。

データベースのスキーマとデータベース プロジェクトのスキーマの比較

「Permissions to Create or Deploy a Database」に説明されているように、データベースからオブジェクトと設定をインポートするアクセス許可を持っている必要があります。 また、データベース プロジェクトを Visual Studio で開く必要があります。

ターゲット データベースへの更新の書き込み

「データベースを作成および配置するためのアクセス許可」に説明されているように、更新をターゲット データベースに配置するためのアクセス許可を持っている必要があります。

2 つのデータベースのデータの比較

2 つのデータベースのスキーマの比較に必要なアクセス許可に加えて、比較するすべてのテーブルに対する SELECT アクセス許可が必要です。

詳細については、Microsoft Web サイトの「オンライン ブック (SQL Server 2008)」、「オンライン ブック (SQL Server 2005)」、または「SQL Server 2000 オンライン ブック」を参照してください。

Transact-SQL (T-SQL) エディタを実行するためのアクセス許可

T-SQL エディタで実行できる操作は、ターゲット データベースに対する実行コンテキストによって決定されます。

参照

概念

Database Edition の用語の概要