PANTHEON™ manual

 Kategori
 PANTHEON Ndihmë - Mirësevini
[Collapse]PANTHEON
 [Expand]Udhëzues për PANTHEON
 [Collapse]Manualet e Përdoruesve për PANTHEON
  [Collapse]Manuali i Përdoruesit për PANTHEON
   [Collapse]Fillimi
     Fjalor i terma
     Hapat e parë me PANTHEON
    [Expand]Përdorimi i PANTHEON në Tecta, një kompani fiktive
    [Expand]Udhëzime për Sigurimin e Përputhshmërisë së PANTHEON me SAS
    [Expand]PANTHEON Instalimi
    [Expand]PANTHEON Sistemi
    [Expand]PANTHEON Bazat
    [Expand]PANTHEON Ndihmë
    [Expand]Materialet dhe Lëvizjet e Mallrave
    [Expand]Shënjimi i Identifikuesve
    [Expand]Pyetje të shpeshta në lidhje me Pantheon (P.S.)
    [Collapse]Arkiv
     [Expand]Marrëveshja e Licencës për Përdoruesin e Fundit
     [Expand]PANTHEON Editions
      Instalimi i PANTHEON në Linux dhe Oracle Database
     [Expand]eInvoice
     [Expand]Fluksi i punës
     [Expand]Backup
     [Expand]eDokumentacionit
     [Expand]Detyrat
      Fjala hyrëse
     [Expand]Integriteti referencial (RI)
     [Collapse]Get.start
      [Expand]Duplikatet
       Windows 7
       SQL Server
      [Expand]ODBC
       Agjenti SQL Server
       Windows Vista
       Slabësimi i performancës së serverëve MS-SQL
      [Collapse]Siguria në Nivelin e Rreshtit
        Si funksionon RLS në praktikë
        Upgrade
        Database
        Ndryshimet e kodit
        ARES - Režimi i Kompatibilitetit RLS
        Zgjidhja e problemeve
        Pyetje dhe Pëgjigje RLS
       Instalimi i MS SQL Server
      [Expand]Planifikimi i Detyrave
       PANTHEON Sistemi i Mjedisit
      [Expand]Harduer
       Llojet e instalimeve në konfigurime të ndryshme rrjeti
      [Expand]Shërbimet Datalab
       Instalimi
       Instalimi në vend
       PANTHEON Cloud instalimi
       Porositja dhe vendosja e shërbimeve eBusiness
       Instalimi për një përdorues i PANTHEON Cloud
       Instalimi i rrjetit të PANTHEN Cloud
       PANTHEON Klienti Setup Wizard
      eExchange
      Njoftimet SMS
   [Expand]Manuali i Përdoruesit për eBusiness
   [Expand]Vendosjet
   [Expand]Porositë
   [Expand]Mallrat
   [Expand]Prodhimi
   [Expand]Shërbimi
   [Expand]Ndihmë
   [Expand]Stafi
   [Expand]Financat
   [Expand]Analitika
  [Expand]Manuali i Përdoruesit për PANTHEON Retail
  [Expand]Manuali i përdoruesit për PANTHEON Vet
  [Expand]Manuali i Përdoruesit për PANTHEON Bujqësi
[Expand]PANTHEON Web
[Expand]PANTHEON Granulat
[Expand]Faqja e Përdoruesit

Load Time: 1781,2676 ms
print   |
Label

Pyetjet dhe Pëgjigjet RLS

              

 

  1. RLS_ALL përdorues
  2. Shtimi i përdoruesve
  3. Heqja e përdoruesve
  4. Këshilla dhe Trik

 

1. RLS_ALL përdorues

RLS_ALL është një përdorues i veçantë i bazës së të dhënave pa ndonjë hartim të hyrjes në server. Kjo do të thotë se nuk mund të hyni në SQL Server me të.

Një mënyrë e vetme për ta përdorur është me EXECUTE AS USER = 'RLS_ALL'

Ka qasje në të gjitha të dhënat që janë të ndara nga funksionaliteti RLS.

Ky përdorues përdoret për, për shembull, të krijojë agregate mbi të dhëna që i përkasin përdoruesve të shumtë.

Për shembull, një raport për shitjet totale për të gjithë punonjësit për një vit, por çdo punonjës mund të shohë vetëm shitjet e tij.

Për një përdorues pantheon që të jetë në gjendje të përdorë EXECUTE AS USER = 'RLS_ALL', ai duhet të ketë lejet GRANT IMPERSONATE mbi përdoruesin RLS_ALL.

VETËM përdoruesit në Pantheon duhet të kenë lejet GRANT IMPERSONATE.

Dhenia e atyre lejeve për llogaritë e ndërtuara në SQL Server (si SA, etj) zakonisht nuk është e nevojshme.

  • VETËM përdoruesit e Pantheon mund të lexojnë të dhëna nga tabelat e mbrojtura nga RLS

Përdoruesi SA (nëse nuk është i hartuar me përdoruesin PA) nuk ka qasje në të dhënat e mbrojtura.
Të dhënat e mbrojtura nga RLS mund të lexohen vetëm nga përdoruesi PA me autorizimet përkatëse.

Në mënyrë që të përdoren lidhjet e jashtme me bazën e të dhënave, lidhja me bazën e të dhënave duhet të bëhet me përdoruesin PANTHEON të lidhur me përdoruesin e Bazës së të Dhënave.

2. Shtimi i përdoruesve

Shtimi i përdoruesve për të aksesuar aplikacione të tjera në bazën e të dhënave PANTHEON.

Mund të shtojmë një përdorues me PANTHEON:

Shihni udhëzimet e mëposhtme: Shtimi i një përdoruesi dhe Vendosja e autorizimeve për një përdorues.

Për cilësime më komplekse, ku duam të shtojmë një përdorues në disa baza të dhënash.

Shtimi i Përdoruesit dhe Ngarkimi i Autorizimeve pa Të Drejta. Ne vendosim lejet e përdoruesit me PANTHEON:

 

deklaro
    @v_cUserId sysname = #UserName#
,    @p_lang_id varchar(2)
--
,    @p_subject varchar(30) = NULL
--
,    @p_user_id int = NULL  
,    @p_contact_id int = NULL  

FILLIM
 
  select * from  [dbo].[tHE_SetSubjContact]    WHERE acUserId = @v_cUserId;  

    SET @p_user_id = (SELECT anUserId FROM [dbo].[tHE_SetSubjContact] WHERE acUserId = @v_cUserId);

    vendos @p_contact_id = NULL;

    IF (@p_user_id IS NULL)
    FILLIM
        Exec ppa_user_create @v_cUserId, @v_cUserId, 1;
    
    select @p_subject = P.acOurCompany, @p_lang_id = PS.acLocalization from tPA_SysParam P, tPA_SysParamSys PS;
    
    SELECT @p_user_id = anUserId FROM [dbo].[tHE_SetSubjContact] WHERE acUserId = @v_cUserId;


      EXEC [dbo].[ppa_user_save]
          @p_user_id = @p_user_id OUTPUT -- @p_user_id int OUTPUT
      ,    @p_contact_id = @p_contact_id OUTPUT -- @p_contact_id int OUTPUT
      ,    @p_user_name = @v_cUserId -- sysname
      ,    @p_lang_id = @p_lang_id --  varchar(2)
      ,    @p_active = 'T' --  char(1)
      ,    @p_license_server = Null --  sysname = NULL
      ,    @p_license_database = Null --  sysname = NULL
      ,    @p_profile = Null --  varchar(10) = NULL
      ,    @p_additpersonmark = Null --  varchar(100) = NULL
      ,    @p_code = Null --  varchar(20)= NULL
      ,    @p_pin = Null --  varchar(11) = NULL
      ,    @p_foreigner = 'F'
      --
      ,    @p_subject = @p_subject --  varchar(30) = NULL
      ,    @p_name = @v_cUserId --  varchar(30) = NULL
      ,    @p_surName = @v_cUserId --  varchar(30) = NULL
      ;

    exec [dbo].[ppa_security_insert] @p_user_id, False, False;--pa autorizime
    exec ppa_security_save @p_user_id, False, False;
    print @p_user_id
    exec [dbo].[ppa_authorization_security_save]
     NULL -- @p_authorization varchar(50)
    , @p_user_id -- @p_principal_id int
    , 0 -- @p_principal_type bit
    , NULL -- @p_parent_id varchar(50)
    , 0 -- @p_acquired bit
    , 0 -- @p_inherited bit
    , 0 -- @p_permission_select bit
    , 0 -- @p_permission_update bit
    , 0 -- @p_permission_delete bit
    , 32767 -- @p_permission_update_period int
    , 1 -- @p_propagate_entities bit = 0
    , Null -- @p_licence char(2) = 'MF'

    exec pPA_SysSQLLoginPswdChange @v_cUserId, Null, @v_cUserId;

    EXEC sp_addrolemember N'db_owner', @v_cUserId;
    EXEC sp_addrolemember N'db_datawriter', @v_cUserId;
    EXEC sp_addrolemember N'db_datareader', @v_cUserId;

  fund;

  select * from  [dbo].[tHE_SetSubjContact]    WHERE acUserId = @v_cUserId;  
  select * from tPA_SetDoctypeUserSecurity where anUserId = @p_user_id;
fund;

 

3. Heqja e përdoruesve

 

deklaro
    @v_cUserId sysname = #USER#,
  @command nvarchar(max);
fillim
    select * from  [dbo].[tHE_SetSubjContact]    WHERE acUserId = @v_cUserId;

    delete from  [dbo].[tHE_SetSubjContact]    WHERE acUserId = @v_cUserId;

    IF (DATABASE_PRINCIPAL_ID(@v_cUserId) IS NOT NULL)
    FILLIM
        SET @command = N'DROP USER ' + QUOTENAME(@v_cUserId) + N';'
        EXEC(@command);
    FUND;


    IF (SUSER_ID(@v_cUserId) IS NOT NULL)
    FILLIM
        SET @command = N'DROP LOGIN ' + QUOTENAME(@v_cUserId) + N';'
        EXEC(@command);
    FUND;

  select * from  [dbo].[tHE_SetSubjContact]    WHERE acUserId = @v_cUserId;
fund;  

 

4. Këshilla dhe Trik

Me Sigurinë e Nivelit të Rreshtit (RLS) të SQL Server në vend, kjo shton ndarjen e lehtë të të dhënave të përdoruesve, por shton pak kompleksitet në planin e ekzekutimit të pyetjeve për çdo pyetje që përdor tabelat që kanë RLS të aktivizuar mbi to.

Qëllimi është të minimizohet ai kompleksitet i planit të ekzekutimit të pyetjeve.

- Përdorimi në procedurat e ruajtura

Shmangni shumë bashkime me tabelat RLS. Nëse keni nevojë të bashkoni shumë tabela së bashku, është më mirë të bashkoni disa (2-4 tabela), vendosni rezultatin e atyre në një tabelë përkohshme (që mund të indeksohet siç duhet) dhe bashkoni atë tabelë përkohshme me tabela të tjera.

Kjo do ta bëjë punën e optimizuesit të pyetjeve më të lehtë pasi pyetja është e ndarë në pjesë të shumta.

- Përdorimi në triggera

Në triggerat pas, nuk ka nevojë të bashkoheni me tabelën bazë për të marrë të dhënat.

Për deklaratën e përditësimit ose të inserimit, tabela pseudo e futur tashmë përmban vlera të reja që janë gjithashtu në tabelën bazë.

Pra, gjithçka që duhet të bëni është të bashkoheni me të.

Nëse keni një skenar ku duhet të kontrolloni ekzistencën e disa të dhënave në një trigger dhe të përditësoni të dhënat në bazë të atij kontrolli, është më mirë të vendosni rezultatet e kontrollit në një tabelë përkohshme, kontrolloni nëse ato të dhëna përmbushin kushtin e dëshiruar dhe përdorni atë për të përditësuar tabelën bazë.

- Mbështetje e funksioneve të ndërtuara të SQL Server për paralelizmin

Nëse ndonjëherë duhet të kontrolloni një emër përdoruesi ose një hyrje SQL nën të cilën konteksti aktual po ekzekutohet, përdorni funksionet e mëposhtme në deklaratat select.

Ato janë të vetmet që mbështesin paralelizmin në planet e ekzekutimit të SQL Server:

USER_NAME, CURRENT_USER, SUSER_NAME, SUSER_SNAME, SUSER_ID, SUSER_SID.

Çdo funksion tjetër të ndërtuar parandalon shqyrtimin e planeve të ekzekutimit të pyetjeve në paralel.



Rate this topic
Was this topic usefull?
Comments
Comment will also bo visible in forum!