PANTHEON™ Help

 Sadržaj
 Glavna strana- Dobrodošli u PANTHEON uputstva
[Collapse]PANTHEON
 [Collapse]PANTHEON priručnici
  [Expand]Priručnik za PANTHEON
  [Expand]Vodič po DataLab PANTHEON™ Farming
  [Expand]Vodič za mobilni POS
  [Expand]Vodič za PANTHEON Vet
 [Collapse]PANTHEON korisnički priručnici
  [Collapse]Korisnički priručnik za PANTHEON
   [Collapse]Kako početi?
     Prvi koraci u programu PANTHEON
    [Expand]Primer upotrebe PANTHEON-a u fiktivnom preduzeću Tecta
    [Expand]Obavezna uputstva za usklađivanje PANTHEON™-a sa rač. standardima
    [Expand]Instalacija programa i potrebnih komponenti
    [Expand]Pomoć za PANTHEON™
    [Expand]Osnovni pojmovi i uputstva
    [Collapse]PANTHEON Sistem
     [Expand]PANTHEON sistem podaci
     [Expand]Microsoft Windows alati
     [Expand]Microsoft SQL server
     [Collapse]Sigurnosna politika
       Kako nadogradnja utiče na baze podataka
      [Collapse]Bezbednost na nivou reda
        Kako RLS deluje u praksi
        Nadogradnja
        Baza podataka
        Promene koda (Code changes)
        Otklanjanje grešaka
        ARES - RLS Compatibility Mode
        RLS Pitanja & Odgovori
        374369
       SQL korisnici u PANTHEON-u
       Automatska prijava domenskog korisnika
     [Expand]Administracija baze podataka
    [Expand]Materijalni i robni tokovi
    [Expand]Uputstva za šifriranje
    [Expand]Arhiv - Kako početi?
    [Expand]Arhiva
   [Expand]Najčešća pitanja i odgovori u vezi Pantheon-a
   [Expand]ePoslovanje
   [Expand]eFiskalizacija 2022
   [Expand]eFakture
   [Expand]Podešavanja
   [Expand]Verzije programskog paketa DataLab Pantheon™
   [Expand]Narudžbine
   [Expand]Roba
   [Expand]Proizvodnja
   [Expand]Servis
   [Expand]Kadrovi
   [Expand]Pomoć
   [Expand]Novac
   [Expand]Osoblje
   [Expand]Plansko-analitički alati ZEUS
   [Expand]Licenca krajnjeg korisnika
  [Expand]Operativni priručnik za datalab PANTHEON Farming
  [Expand]Korisnički vodič za mobilni POS
  [Expand]Korisnički priručnik za PANTHEON VET
  [Expand]Korisnički priručnik za PANTHEON Farming
[Collapse]PANTHEON Web
 [Collapse]Priručnici za PANTHEON Web
  [Expand]Vodič po PANTHEON Web Light-u
  [Expand]Vodič po PANTHEON Web Terminal-u
  [Expand]Vodič za PANTHEON Web Legal
  [Expand]Arhiva starih proizvoda
 [Collapse]Korisnički priručnici za PANTHEON Web
  [Expand]Kako početi? PANTHEON Web
  [Expand]Korisnički priručnik za PANTHEON Web Light
  [Expand]Korisnički priručnik za PANTHEON Web Terminal
  [Expand]Arhiva starih proizvoda
  [Expand]Korisnički priručnik za PANTHEON Web Legal
[Collapse]PANTHEON Granule
 [Collapse]Priručnik za PANTHEON Granule
  [Expand]Granula Kadrovi
  [Expand]Granula Putni nalozi
  [Expand]Granula Dokumenti i zadaci
  [Expand]Granula Kontrolna tabla
  [Expand]Granula Servis na terenu
  [Expand]Granula B2B naručivanje
  [Expand]Inventar Fiksne Imovine
  [Expand]Granula Inventar skladišta
 [Collapse]Korisnički priručnik za PANTHEON Granule
  [Expand]Kako početi?
  [Expand]PANTHEON Granule i aktivacija
  [Expand]Granula Kadrovi
  [Expand]Granula Putni nalozi
  [Expand]Granula B2B Naručivanje
  [Expand]Granula Kontrolna tabla
  [Expand]Granula Dokumenti i Zadaci
  [Expand]Granula Servis na terenu
   PANTHEON Granule - česta pitanja i odgovori
  [Expand]Inventar Fiksne Imovine
  [Expand]Arhiva
  [Expand]Granula Inventar skladišta
   Arhiva

Load Time: 390.6424 ms
"
  1000002563 | 222177 | 375726 | Localized
Label

RLS Pitanja i Odgovori

              

 

  1. RLS_ALL korisnik
  2. Dodavanje korisnika
  3. Odbacivanje korisnika
  4. Tips and tricks

 

1. RLS_ALL korisnik

RLS_ALL je poseban korisnik baze podataka bez ikakvog mapiranja prijavljivanja na server. To znači da se sa njim ne možete prijaviti na SQL Server.

Jedini način da koristite ovog korisnika je EXECUTE AS USER = 'RLS_ALL'

Ima pristup svim podacima koji su odvojeni RLS funkcionalnošću.

Ovaj korisnik se koristi za, na primer, kreiranje skladišta podataka u vlasništvu više korisnika.

Na primer, izveštaj o ukupnoj prodaji za sve zaposlene za godinu dana, ali svaki zaposleni može da vidi samo svoju prodaju.

Da bi korisnik Pantheon-a mogao da koristi EXECUTE AS USER = 'RLS_ALL', mora da ima GRANT IMPERSONATE autorizacije za RLS_ALL korisnika.

SAMO korisnici Pantheon-a mogu da imaju autorizacije GRANT IMPERSONATE.​

Davanje tih autorizacija ugrađenim nalozima SQL Servera (poput SA, itd.) obično nije potrebno.

  • SAMO korisnici Pantheon-a mogu čitati podatke iz RLS zaštićenih tabela

SA korisnik (ako nije mapiran na korisnika PA) nema pristup zaštićenim podacima. Sve RLS zaštićene podatke može čitati samo PA korisnik sa odgovarajućim autorizacijama.

Da biste koristili eksterne veze sa bazom podataka, povezivanje sa bazom podataka mora se izvršiti sa PANTHEON korisnikom povezanim sa korisnikom baze podataka.

2. Dodavanje korisnika

Dodavanje korisnika za pristup drugim aplikacijama u PANTHEON bazu podataka.

Možemo dodati korisnika uz pomoć PANTHEON-a:

Pogledajte sledeća uputstva: Dodavanje i menjanje korisnika i Autorizacije.

Za složenija podešavanja, gde želimo da dodamo korisnika u više baza podataka.    Dodavanje korisnika i promena autorizacije bez prava. Mi postavljamo autorizacije korisnika sa PANTHEON-om:

 

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

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

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

    set @p_contact_id = NULL;

    IF (@p_user_id IS NULL)
    BEGIN
        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;--no authorizations
    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;

  end;

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

 

3. Odbacivanje korisnika

 

declare
    @v_cUserId sysname = #USER#,
  @command nvarchar(max);
begin
    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)
    BEGIN
        SET @command = N'DROP USER ' + QUOTENAME(@v_cUserId) + N';'
        EXEC(@command);
    END;


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

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

 

4. Tips and Tricks

Uz pomoć SQL Server's Row Level Security (RLS) dodaje lako razdvajanje korsiničkih podataka, ali dodaje malo složenosti u izvršenju upita svakom upitu koji koristi tabele kojima je omogućen RLS

Cilj je da se smanji kompleksnost plana izvršenja upita..

- Upotreba u uskladištenim procedurama

Izbegavajte mnogo spajanja sa RLS tabelama. Ako treba da spojite mnogo tabela zajedno, bolje je da spojite nekoliko (2-4 tabele), stavite rezultat toga u privremenu tabelu (koja čak može biti i pravilno indeksirana) i pridružite tu privremenu tabelu drugim tabelama .

Ovo će olakšati posao optimizatoru upita pošto je upit podeljen na više delova.   - Upotreba trigera Posle trigera nema potrebe da se pridružite osnovnoj tabeli da biste dobili podatke.   Za naredbu ažuriranja ili umetanja, umetnuta pseudo tabela već sadrži nove vrednosti koje se takođe nalaze u osnovnoj tabeli.   Dakle, sve što treba da uradite je da mu se pridružite.

Ako imate scenario u kojem morate da proverite postojanje nekih podataka u pokretaču i ažurirate podatke na osnovu te provere, bolje je da rezultate provere stavite u privremenu tabelu, proverite da li ti podaci zadovoljavaju željeni uslov i koristite ih za ažuriranje osnovne tabele.

- Podrška ugrađene funkcije SQL Servera za paralelizam

Ako ikada budete morali da proverite korisničko ime ili SQL prijavu pod kojim se trenutni kontekst izvršava, koristite sledeće funkcije u naredbama za odabir.

Oni su jedini koji podržavaju paralelizam u planovima izvršavanja SQL Servera: USER_NAME, CURRENT_USER, SUSER_NAME, SUSER_SNAME, SUSER_ID, SUSER_SID.

Bilo koja druga ugrađena funkcija sprečava razmatranje paralelnih planova izvršavanja upita.

 

 

Oceni ovu temu
Da li je ova tema korisna?
Komentari
Komentari će biti vidljivi i na forumu!