<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://sqlserver.ro/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Intrebari generale</title><link>http://sqlserver.ro/forums/16/ShowForum.aspx</link><description /><dc:language>en</dc:language><generator>CommunityServer 2.1 SP2 (Build: 61129.1)</generator><item><title>Re: Preluarea user-ului curent pentru audit</title><link>http://sqlserver.ro/forums/thread/6096.aspx</link><pubDate>Fri, 07 Nov 2008 08:15:14 GMT</pubDate><guid isPermaLink="false">963f3a18-65dd-4aad-905c-b785cfe1d7c7:6096</guid><dc:creator>tudor.t</dc:creator><slash:comments>0</slash:comments><comments>http://sqlserver.ro/forums/thread/6096.aspx</comments><wfw:commentRss>http://sqlserver.ro/forums/commentrss.aspx?SectionID=16&amp;PostID=6096</wfw:commentRss><description>Cum zicea si rremus - nu sunt de parere ca un triger e locul potrivit pentru asa ceva - in masura in care ai doar o singura aplicatie care foloseste acea baza de date, audit-ul low-level care sa referentieze si user-ul care a declansat acea operatiune isi are loc-ul in DAL-ul aplicatiei (majoritatea O/RM-urilor ofera o astfel de facilitate, de ex.)..&lt;br&gt;&lt;br&gt;&lt;br&gt;</description></item><item><title>Re: Preluarea user-ului curent pentru audit</title><link>http://sqlserver.ro/forums/thread/6078.aspx</link><pubDate>Thu, 06 Nov 2008 07:12:17 GMT</pubDate><guid isPermaLink="false">963f3a18-65dd-4aad-905c-b785cfe1d7c7:6078</guid><dc:creator>mircea</dc:creator><slash:comments>0</slash:comments><comments>http://sqlserver.ro/forums/thread/6078.aspx</comments><wfw:commentRss>http://sqlserver.ro/forums/commentrss.aspx?SectionID=16&amp;PostID=6078</wfw:commentRss><description>&lt;P&gt;Multumes mult pentru sfaturi !!! Sunt de mare ajutor ! , si m-au ajutat foarte mult sa pot construi mecanismul.&lt;/P&gt;
&lt;P&gt;Am mai stat si pe alte forumuri insa&amp;nbsp;pe acesta a fost cea mai mare activitate. Sunt foarte placut impresinat de acest lucru.&lt;/P&gt;
&lt;P&gt;Multumesc inca o data !&amp;nbsp;&amp;nbsp;&lt;/P&gt;</description></item><item><title>Re: Preluarea user-ului curent pentru audit</title><link>http://sqlserver.ro/forums/thread/6060.aspx</link><pubDate>Tue, 04 Nov 2008 18:41:34 GMT</pubDate><guid isPermaLink="false">963f3a18-65dd-4aad-905c-b785cfe1d7c7:6060</guid><dc:creator>rsocol</dc:creator><slash:comments>0</slash:comments><comments>http://sqlserver.ro/forums/thread/6060.aspx</comments><wfw:commentRss>http://sqlserver.ro/forums/commentrss.aspx?SectionID=16&amp;PostID=6060</wfw:commentRss><description>&lt;BLOCKQUOTE&gt;&lt;div&gt;&lt;img src="http://sqlserver.ro/Themes/default/images/icon-quote.gif"&gt; &lt;strong&gt;rremus:&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;In server il citesti din &lt;a href="http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnectionstringbuilder.aspx"&gt;sys.dm_exec_sessions &lt;/a&gt;(cred ca e program_name).&lt;br&gt;&lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;br&gt;&lt;br&gt;Sau, mai simplu, cu funcţia APP_NAME().&lt;br&gt;&lt;br&gt;Răzvan&lt;br&gt;</description></item><item><title>Re: Preluarea user-ului curent pentru audit</title><link>http://sqlserver.ro/forums/thread/6058.aspx</link><pubDate>Tue, 04 Nov 2008 16:30:31 GMT</pubDate><guid isPermaLink="false">963f3a18-65dd-4aad-905c-b785cfe1d7c7:6058</guid><dc:creator>rremus</dc:creator><slash:comments>0</slash:comments><comments>http://sqlserver.ro/forums/thread/6058.aspx</comments><wfw:commentRss>http://sqlserver.ro/forums/commentrss.aspx?SectionID=16&amp;PostID=6058</wfw:commentRss><description>&lt;BLOCKQUOTE&gt;&lt;div&gt;&lt;img src="http://sqlserver.ro/Themes/default/images/icon-quote.gif"&gt; &lt;strong&gt;mircea:&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;&amp;nbsp;Andrei am incercat sa introduc username-ul in stringul de conexiune, in c#,&amp;nbsp;insa nu gasesc nimic acolo "Application Name" , si chiar nu stiu cum sa il "citesc" pe server. Aceasta proprietate se afla pe server ? , nu stiu de unde sa o setez. Te-as ruga sa-mi&amp;nbsp;postezi niste linkuri&amp;nbsp;care expun acest lucru de unde sa pot invata, sau sa lamuresc cumva acest lucru.&lt;/p&gt;
&lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;br&gt;&lt;br&gt;Foloseste un &lt;a href="http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnectionstringbuilder.aspx"&gt;SqlConnectionStringBuilder&lt;/a&gt; si assigneaza-i proprietatea &lt;a href="http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnectionstringbuilder.aspx"&gt;ApplicationName&lt;/a&gt;:&lt;br&gt;&lt;br&gt;SqlConnectionStringBuilder scsb = new SqlConnectionStringBuilder(Settings.Default.connString);&lt;br&gt;scsb.ApplicationName = userName;&lt;br&gt;using(SqlConnection conn = new SqlConnection(scsb.ConnectionString))&lt;br&gt;{&lt;br&gt;conn.Open ();&lt;br&gt;....&lt;br&gt;}&lt;br&gt;&lt;br&gt;In server i-l citesti din &lt;a href="http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnectionstringbuilder.aspx"&gt;sys.dm_exec_sessions &lt;/a&gt;(cred ca e program_name). Ideea e ca trebuie sa autentifici user-ul intr-o conexiune, apoi sa deschizi o noua conexiune in care e setat, nu se poate seta 'din mers'.&lt;br&gt;</description></item><item><title>Re: Preluarea user-ului curent pentru audit</title><link>http://sqlserver.ro/forums/thread/6056.aspx</link><pubDate>Tue, 04 Nov 2008 16:10:42 GMT</pubDate><guid isPermaLink="false">963f3a18-65dd-4aad-905c-b785cfe1d7c7:6056</guid><dc:creator>mircea</dc:creator><slash:comments>0</slash:comments><comments>http://sqlserver.ro/forums/thread/6056.aspx</comments><wfw:commentRss>http://sqlserver.ro/forums/commentrss.aspx?SectionID=16&amp;PostID=6056</wfw:commentRss><description>&lt;P&gt;Mersi pentru comentarii !&lt;/P&gt;
&lt;P&gt;&amp;nbsp;O sa iau serios in calcul modul de audit prezentat de tine Remus , mersi pentru modul de organizare oferit pentru audit. Acum am inceput sa lucrez si am reusit sa creez schimbarea de context folosind procedura stocata, insa aplicatia este in faza de design si s-ar putea sa propun o varianta de audit inspirata din ce a prezentat Remus , thx .&lt;/P&gt;
&lt;P&gt;&amp;nbsp;Andrei am incercat sa introduc username-ul in stringul de conexiune, in c#,&amp;nbsp;insa nu gasesc nimic acolo "Application Name" , si chiar nu stiu cum sa il "citesc" pe server. Aceasta proprietate se afla pe server ? , nu stiu de unde sa o setez. Te-as ruga sa-mi&amp;nbsp;postezi niste linkuri&amp;nbsp;care expun acest lucru de unde sa pot invata, sau sa lamuresc cumva acest lucru.&lt;/P&gt;
&lt;P&gt;Multumesc !&lt;/P&gt;</description></item><item><title>Re: Preluarea user-ului curent pentru audit</title><link>http://sqlserver.ro/forums/thread/6054.aspx</link><pubDate>Tue, 04 Nov 2008 14:00:34 GMT</pubDate><guid isPermaLink="false">963f3a18-65dd-4aad-905c-b785cfe1d7c7:6054</guid><dc:creator>rremus</dc:creator><slash:comments>0</slash:comments><comments>http://sqlserver.ro/forums/thread/6054.aspx</comments><wfw:commentRss>http://sqlserver.ro/forums/commentrss.aspx?SectionID=16&amp;PostID=6054</wfw:commentRss><description>Nu cred ca este corect sa folosesti trigger de audit in combinatie cu management de user ID propriu aplicatiei. Trigerele acela for fi declansate si de operatiuni din SSMS, de joburi de SQL Agent, de activitati din SSIS sau orice altceva asemanator. Aceste operatiuni nu se vor executa in contextul unui user de aplicatie. Mai corect ar fi sa separi auditul in doua:&lt;br&gt;&lt;ul&gt;&lt;li&gt;'data audit' care se face din aceste trigere si poate retine USER_NAME si SUSER_SNAME si face audit la &lt;i&gt;toate &lt;/i&gt;operatiunile, inclusiv cele din SSMS sau SSIS&lt;/li&gt;&lt;li&gt;'application audit' care face audit la operatiunile facut de aplicatie si ca atare este apelat explicit de aplicatie (de exemplu intr-un Page_Unload) si retine datele relevante pentru aplicatie, inclusiv identitatea de 'user ID' specifica aplicatiei. Ceva de genul&lt;font face="Courier New"&gt; exec usp_record_audit @user='Mircea', @action='Hack Database', @severity='Fatal'&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;&lt;font color="#ffffff"&gt;Ceea ce tu numesti 'elegant' altzi ar numi un 'hack' sau 'improvizatie de amator'. &lt;/font&gt;</description></item><item><title>Re: Preluarea user-ului curent pentru audit</title><link>http://sqlserver.ro/forums/thread/6053.aspx</link><pubDate>Tue, 04 Nov 2008 13:40:07 GMT</pubDate><guid isPermaLink="false">963f3a18-65dd-4aad-905c-b785cfe1d7c7:6053</guid><dc:creator>ignatandrei</dc:creator><slash:comments>0</slash:comments><comments>http://sqlserver.ro/forums/thread/6053.aspx</comments><wfw:commentRss>http://sqlserver.ro/forums/commentrss.aspx?SectionID=16&amp;PostID=6053</wfw:commentRss><description>&lt;BLOCKQUOTE&gt;&lt;div&gt;&lt;img src="http://sqlserver.ro/Themes/default/images/icon-quote.gif"&gt; &lt;strong&gt;mircea:&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;&amp;nbsp;Momentan insa cred ca exista o metoda mai eleganta de a trimite user-ul , ma gandesc sa il trimit intr-un anume mod prin conexiune , daca se poate --- realizez distinctia intre login-ul de pe server&amp;nbsp;(&amp;nbsp;de ex&amp;nbsp;"sa") si cel a userului aplicatie pe care vreau sa il introduc pe conexiune. Are sens sa incerc acest lucru , credeti ca se poate&amp;nbsp;? M-ar&amp;nbsp;ajuta intr-un anume mod CLR in acest sens ? Exista evenimente in Global.asax care imi pot fi de folos ?&lt;/p&gt;
&lt;p&gt;Multumesc !&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;br&gt;&lt;br&gt;Daca folosesti 1 singura conexiune, poti customiza Application Name din
connection string ( adauga numele user-ului logat) &lt;br&gt;</description></item><item><title>Re: Preluarea user-ului curent pentru audit</title><link>http://sqlserver.ro/forums/thread/6052.aspx</link><pubDate>Tue, 04 Nov 2008 13:31:13 GMT</pubDate><guid isPermaLink="false">963f3a18-65dd-4aad-905c-b785cfe1d7c7:6052</guid><dc:creator>mircea</dc:creator><slash:comments>0</slash:comments><comments>http://sqlserver.ro/forums/thread/6052.aspx</comments><wfw:commentRss>http://sqlserver.ro/forums/commentrss.aspx?SectionID=16&amp;PostID=6052</wfw:commentRss><description>&lt;P&gt;Multumesc mult pentru postari , sunt foarte ajutatoare , din ce am mai citit de pe net si inspirat din aceste postari cred ca pot construi acest mecanism.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;Singura problema care ma mai macina acum este modul in care o sa trimit user curent al aplicatiei catre server. O solutie la care m-am gandit ar fi ca imediat dupa ce am deschis conexiunea sa rulez o procedura stocata care sa il primeasca ca parametru si&amp;nbsp;sa modifice contextul corespunzator pe server.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;Momentan insa cred ca exista o metoda mai eleganta de a trimite user-ul , ma gandesc sa il trimit intr-un anume mod prin conexiune , daca se poate --- realizez distinctia intre login-ul de pe server&amp;nbsp;(&amp;nbsp;de ex&amp;nbsp;"sa") si cel a userului aplicatie pe care vreau sa il introduc pe conexiune. Are sens sa incerc acest lucru , credeti ca se poate&amp;nbsp;? M-ar&amp;nbsp;ajuta intr-un anume mod CLR in acest sens ? Exista evenimente in Global.asax care imi pot fi de folos ?&lt;/P&gt;
&lt;P&gt;Multumesc !&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description></item><item><title>Re: Preluarea user-ului curent pentru audit</title><link>http://sqlserver.ro/forums/thread/6023.aspx</link><pubDate>Tue, 04 Nov 2008 08:19:17 GMT</pubDate><guid isPermaLink="false">963f3a18-65dd-4aad-905c-b785cfe1d7c7:6023</guid><dc:creator>Diana</dc:creator><slash:comments>0</slash:comments><comments>http://sqlserver.ro/forums/thread/6023.aspx</comments><wfw:commentRss>http://sqlserver.ro/forums/commentrss.aspx?SectionID=16&amp;PostID=6023</wfw:commentRss><description>...iar daca vrei sa urmaresti schimbarile in schema, vezi si BOL ---&amp;gt; "DDL triggers"</description></item><item><title>Re: Preluarea user-ului curent pentru audit</title><link>http://sqlserver.ro/forums/thread/6022.aspx</link><pubDate>Tue, 04 Nov 2008 08:16:58 GMT</pubDate><guid isPermaLink="false">963f3a18-65dd-4aad-905c-b785cfe1d7c7:6022</guid><dc:creator>Diana</dc:creator><slash:comments>0</slash:comments><comments>http://sqlserver.ro/forums/thread/6022.aspx</comments><wfw:commentRss>http://sqlserver.ro/forums/commentrss.aspx?SectionID=16&amp;PostID=6022</wfw:commentRss><description>&lt;P&gt;&lt;BLOCKQUOTE&gt;&lt;div&gt;&lt;img src="http://sqlserver.ro/Themes/default/images/icon-quote.gif"&gt; &lt;strong&gt;katalyn:&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;În 2008 ai deja change data capture. Despre ce versiune de SQL Server este vorba? Este vorba de useri de aplicaţie? &lt;BR&gt;De exemplu, eu cred ca este vorba de un site care probabil conţine schema de bd generata de aspnet_regsql.exe &lt;BR&gt;Am dreptate?&lt;BR&gt;&lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;/P&gt;
&lt;P&gt;Nu cred ca CDC e cel mai nimerit in acest caz - mai degraba "SQL Server auditing"...&amp;nbsp;Ca si CDC, auditing-ul este disponobil doar in editia "2008 Enterprise".&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Mircea, vezi daca te ajuta: &lt;A href="http://www.sqljunkies.ddj.com/Article/4CD01686-5178-490C-A90A-5AEEF5E35915.scuk"&gt;http://www.sqljunkies.ddj.com/Article/4CD01686-5178-490C-A90A-5AEEF5E35915.scuk&lt;/A&gt;&amp;nbsp;&lt;/P&gt;</description></item><item><title>Re: Preluarea user-ului curent pentru audit</title><link>http://sqlserver.ro/forums/thread/6021.aspx</link><pubDate>Tue, 04 Nov 2008 08:08:26 GMT</pubDate><guid isPermaLink="false">963f3a18-65dd-4aad-905c-b785cfe1d7c7:6021</guid><dc:creator>rsocol</dc:creator><slash:comments>0</slash:comments><comments>http://sqlserver.ro/forums/thread/6021.aspx</comments><wfw:commentRss>http://sqlserver.ro/forums/commentrss.aspx?SectionID=16&amp;PostID=6021</wfw:commentRss><description>Din fraza "userii sunt stocati intr-o tabela separta in aplicatie", înţeleg că toţi user-ii se conectează la server prin acelaşi login, deci nu poţi să foloseşti USER_NAME() sau SUSER_SNAME(), care ar fi fost soluţia cea mai elegantă. În acest caz, în afară de HOST_NAME() şi APP_NAME(), ai putea să foloseşti CONTEXT_INFO() în felul următor:&lt;br&gt;&lt;br&gt;1. De fiecare dată când deschizi o conexiune, scrii numele utilizatorului în context_info, astfel:&lt;br&gt;&lt;br&gt;DECLARE @user varchar(128)&lt;br&gt;SET @user='Gigel'&lt;br&gt;&lt;br&gt;DECLARE @context binary(128)&lt;br&gt;SET @context=CONVERT(binary(128),@user)&lt;br&gt;SET CONTEXT_INFO @context&lt;br&gt;&lt;br&gt;2. În trigger-ul tău de audit, determini utilizatorul curent, folosind ceva de genul:&lt;br&gt;&lt;br&gt;DECLARE @user varchar(128)&lt;br&gt;SET @user=REPLACE(CONVERT(varchar(128),CONTEXT_INFO()),CHAR(0),'')&lt;br&gt;&lt;br&gt;--SELECT @user&lt;br&gt;&lt;br&gt;Răzvan&lt;br&gt;</description></item><item><title>Re: Preluarea user-ului curent pentru audit</title><link>http://sqlserver.ro/forums/thread/6020.aspx</link><pubDate>Tue, 04 Nov 2008 08:05:15 GMT</pubDate><guid isPermaLink="false">963f3a18-65dd-4aad-905c-b785cfe1d7c7:6020</guid><dc:creator>mircea</dc:creator><slash:comments>0</slash:comments><comments>http://sqlserver.ro/forums/thread/6020.aspx</comments><wfw:commentRss>http://sqlserver.ro/forums/commentrss.aspx?SectionID=16&amp;PostID=6020</wfw:commentRss><description>&lt;P&gt;Salut !&lt;/P&gt;
&lt;P&gt;&amp;nbsp;In aceasta apicatie folosesc o singura conexiune pentru toti useri. Nu sunt interesat sa preia nume de useri precum "dbo" sau nume de login ci reale cum ar fi "Mircea" sau id-ul acestuia din tabela cu useri din baza de date. Nu folosim autentificare windows.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; Acest lucru ar fi foarte bine daca l-as realiza folosind doar triggere, sau eventual sa chem o procedura stocata sau functie intr-un trigger care imi ofera acel user , in trigger , pentru a fi introdus in tabela de audit alaturi de informatiile corespunzatoare (operatie,data,...). &lt;/P&gt;
&lt;P&gt;&amp;nbsp;Din ce am mai citit pana acum am observat ca acest lucru se poate face cu CLR Triggeres insa nu sunt sigur, alte articole&amp;nbsp;faceau referinta la SqlContextInfo si Global.asax insa nu sunt clare.&amp;nbsp;Folosim mssql 2005 developer edition. Nu folosim tool-ul de&amp;nbsp;membership de la microsoft. Da, useri de aplicatie ma intereseaza pentru audit.&lt;/P&gt;
&lt;P&gt;Multumesc !&lt;/P&gt;</description></item><item><title>Re: Preluarea user-ului curent pentru audit</title><link>http://sqlserver.ro/forums/thread/6019.aspx</link><pubDate>Tue, 04 Nov 2008 07:28:13 GMT</pubDate><guid isPermaLink="false">963f3a18-65dd-4aad-905c-b785cfe1d7c7:6019</guid><dc:creator>katalyn</dc:creator><slash:comments>0</slash:comments><comments>http://sqlserver.ro/forums/thread/6019.aspx</comments><wfw:commentRss>http://sqlserver.ro/forums/commentrss.aspx?SectionID=16&amp;PostID=6019</wfw:commentRss><description>În 2008 ai deja change data capture. Despre ce versiune de SQL Server este vorba? Este vorba de useri de aplicaţie? &lt;br&gt;De exemplu, eu cred ca este vorba de un site care probabil conţine schema de bd generata de aspnet_regsql.exe &lt;br&gt;Am dreptate?&lt;br&gt;&lt;br&gt;O posibilă soluţie este să vezi ce este cu CDC în 2008 şi să încerci implementarea în versiunea ta numai pentru ce te interesează... O altă idee este ca din aplicaţie să execuţi proceduri cărora le dai ca parametru UserID-ul.&lt;br&gt;</description></item><item><title>Re: Preluarea user-ului curent pentru audit</title><link>http://sqlserver.ro/forums/thread/6018.aspx</link><pubDate>Tue, 04 Nov 2008 07:27:29 GMT</pubDate><guid isPermaLink="false">963f3a18-65dd-4aad-905c-b785cfe1d7c7:6018</guid><dc:creator>Diana</dc:creator><slash:comments>0</slash:comments><comments>http://sqlserver.ro/forums/thread/6018.aspx</comments><wfw:commentRss>http://sqlserver.ro/forums/commentrss.aspx?SectionID=16&amp;PostID=6018</wfw:commentRss><description>&lt;P&gt;Poti folosi USER_NAME() sau SUSER_SNAME(), vezi&lt;/P&gt;
&lt;P&gt;&lt;A href="http://technet.microsoft.com/en-us/library/ms191126(SQL.90).aspx"&gt;http://technet.microsoft.com/en-us/library/ms191126(SQL.90).aspx&lt;/A&gt;&lt;/P&gt;</description></item><item><title>Re: Preluarea user-ului curent pentru audit</title><link>http://sqlserver.ro/forums/thread/6017.aspx</link><pubDate>Tue, 04 Nov 2008 05:31:14 GMT</pubDate><guid isPermaLink="false">963f3a18-65dd-4aad-905c-b785cfe1d7c7:6017</guid><dc:creator>ignatandrei</dc:creator><slash:comments>0</slash:comments><comments>http://sqlserver.ro/forums/thread/6017.aspx</comments><wfw:commentRss>http://sqlserver.ro/forums/commentrss.aspx?SectionID=16&amp;PostID=6017</wfw:commentRss><description>1. Folosesti 1 singura conexiune (Sql Server)pentru fiecare user sau autentificare Windows ?&lt;br&gt;&lt;br&gt;2. Daca folosesti 1 singura conexiune, poti customiza Application Name din connection string ( adauga numele user-ului logat) ca si hostname sa afli numele pc-ului&lt;br&gt;&lt;br&gt;3. Daca folosesti autentificare Windows , nu vad problema - exista , de ex.,USER_NAME() ...&lt;br&gt;</description></item></channel></rss>