背景: アプリケーションのセキュリティ ロールの統合を検討しています。5 つのアクセス レベル (地区、郡、州など) の 1 つまたは複数に適用できる 20 の役割があります。ほとんどのユーザーは、アクセス レベルごとに複数の役割を持っているため、アクセス レベルごとに最も一般的なユーザーのグループ化に関する統計を取得したいと考えました。
編集:ビジネス ユーザーは、システムに入力された人々のジョブ ロールと、システムを使用する人々のセキュリティ ロールとの間で混乱していました。ジョブ ロールとセキュリティ ロールの間には直接のマッピングがありました。ビジネス オーナーが気付いているのは、ユーザーに割り当てることができるロールの数のセキュリティを管理したくないということです。
ロールのフラグ列挙型に相当するものを作成しました (ID はロールの主キーであり、フラグは flay 値です)。
DECLARE @flags table(Id int,Flag int);
insert into @flags
values (1 , 1),
(2 , 2),
(4 , 4),
(5 , 8),
(6 , 16),
(7 , 32),
(8 , 64),
(9 , 128),
(10 , 256),
(11 , 512),
(12 , 1024),
(13 , 2048),
(14 , 4096),
(15 , 8192),
(16 , 16384),
(17 , 32768),
(18 , 65536),
(19 , 131072),
(20 , 262144),
(21 , 524288)
アクセス レベルでグループ化されたシステム内の各ユーザーのユーザー ロールの合計を照会しました。また、ユーザー集団の最も一般的なロール グループを照会して、ユーザー ロールを作成しないことを確認できるようにしたいと考えています。新しい役割が一般的すぎる。
UserName Roles AccessLevel
User1@test.edu 8192 County
User1@test.edu 262400 District
正しい方向へのポインタは良いでしょう。私は統計にあまり詳しくないので、使用している方法全体が悪い場合はお知らせください。