<form id="fjn3d"></form>

<address id="fjn3d"></address>

            11.2.?推理控制

            1. uxdb用戶創測試用戶:

              create user developer with password '1qaz!QAZ';
              create user manager with password '1qaz!QAZ';
            2. uxop創建策略和主體標記:

              select mac_create_policy('pl2','public,secret','developer,manager');
              select mac_set_user_label('developer','pl2','secret:developer','secret:developer','secret:developer','public:developer','secret:developer');
              select mac_set_user_label('manager','pl2','secret:developer,manager','secret:manager', 'secret:manager','public:manager','secret:manager');
            3. 對id3設置一個標簽:

              select mac_set_column_label('public','test_infer','id3','pl2','secret:manager,developer');

              developer的最大讀標記為secret:developer

              manager的最大讀標記為max_read:?secret:manager,developer

              id3的列標記為secret:manager,developer

              故developer沒有id3的select權限,manager有id3的select權限。

            4. 查看推理規則(上述test_infer表):

              select mac_list_fds('public','test_infer');
            5. 分別切換developer用戶和manager用戶訪問沒有標記的id2列:

              select id2 from test_infer;

              developer:

              manager:

              由上述結果可以看出developer沒有權限訪問id2列,manager可以訪問id2列。由于推理規則中id2能推理出id3,因此select查看 id2的時候運用了id3的標記。導致了developer沒有查看id2的權限。

            6. 登錄uxop用戶取消規則id2->id3:

              select mac_drop_fd('public','test_infer','id2','id3');
              select mac_list_fds('public','test_infer');
            7. 登錄developer分別訪問id2列:

              select id2 from test_infer;
              select id3 from test_infer;

              取消id2->id3的推理規則之后,developer可以訪問成功id2列,由于標記原因,developer無法訪問id3列。

            91竞彩之家