次の方法で共有


[方法] メタデータ オブジェクトのアクセス制御リストを取得する

メタデータ オブジェクトのビジネス データ カタログ階層内の各オブジェクト (Application、Entity、Method、MethodInstance、Parameter、TypeDescriptor など) は、各プリンシパルがオブジェクトに対してどの権限を持つかを指定するアクセス制御リスト (ACL) を備えています。13 種類のメタデータ オブジェクトのうち、LobSystem、Entity、Method、および MethodInstance だけが個別に制御できる ACL を備えています。これらのオブジェクトは、個別にセキュリティ保護可能なメタデータ オブジェクトと呼ばれます。その他のメタデータ オブジェクトは、直接上の親から ACL を継承し、アクセス制御されたメタデータ オブジェクトと呼ばれます。

ビジネス データ クライアント (リスト内のビジネス データ、ビジネス データ Web パーツなど) は、ビジネス データ カタログの権限によって実行されます。 クライアントでエンティティを使用可能にするために必要な最低限の権限は "クライアントで選択可能" 権限です。

注意

ビジネス データ カタログはサイト コレクション全体で共有される共有サービスなので、サイト コレクション レベルのセキュリティ設定は適用できません。このため、サイト設定とビジネス データ カタログの権限はあまり関係がありません。

次の表に、管理者または "権限の管理" 権限を持つユーザーがビジネス データ カタログ アプリケーションで設定できる権限を示します。

権限

適用先

説明

編集

アクセス制御されるメタデータ オブジェクト

  • 更新

  • 削除

  • 子オブジェクトの作成

  • プロパティの追加

  • プロパティの削除

  • プロパティのクリア

  • ローカライズされた表示名の追加

  • ローカライズされた表示名の削除

  • ローカライズされた表示名のクリア

権限の管理

個別にセキュリティ保護可能なメタデータ オブジェクト

  • 権限の設定

  • 子への権限のコピー

実行 (表示)

MethodInstance

  • さまざまなランタイム API 呼び出しを使用する MethodInstance の実行

クライアントで選択可能

アプリケーションとエンティティ

  • Web パーツおよびリストで使用

  • 選択時に表示

次のコード サンプルは、ビジネス データ カタログに登録された LobSystem インスタンスの ACL を取得する方法を示しています。

前提条件

プロジェクト参照

このサンプルを実行する前に、コンソール アプリケーション コード プロジェクトに以下のプロジェクト参照を追加します。

  • Microsoft.SharePoint

  • Microsoft.SharePoint.Portal

  • Microsoft.Office.Server

using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.Office.Server.ApplicationRegistry.Administration;
using Microsoft.Office.Server.ApplicationRegistry.Infrastructure;
using WSSAdmin = Microsoft.SharePoint.Administration;
using OSSAdmin = Microsoft.Office.Server.Administration;

namespace Microsoft.SDK.SharePointServer.Samples
{
    class GetStartedAndCreateSystem
    {
        const string yourSSPName ="EnterYourSSPNameHere";

        static void Main(string[] args)
        {
            SetupBDC();
            GetAccessControlList();
            Console.WriteLine("Press any key to exit...");
            Console.Read();
        }
        static void SetupBDC()
        {
            SqlSessionProvider.Instance().SetSharedResourceProviderToUse(yourSSPName);
        }
        public static void GetAccessControlList()
        {
            LobSystemInstance mySysInstance = null;
            LobSystemInstanceCollection sysInsCollection = ApplicationRegistry.Instance.GetLobSystemInstancesLikeName("AdventureWorksSampleFromCode");
            foreach (LobSystemInstance sysInstance in sysInsCollection)
            {
                if (sysInstance.Name == "AdventureWorksSampleFromCode")
                {
                    mySysInstance = sysInstance;
                    break;
                }
            }
            LobSystem ls = mySysInstance.LobSystem;
            IAccessControlList acl = ls.GetAccessControlList();

            foreach (IAccessControlEntry ace in acl)
            {
                Console.WriteLine(ace.IdentityName);
                Console.WriteLine(ace.Rights);
            }
        }
    }
}

See Also

概念

ビジネス データ カタログ : メタデータ モデル