Futtatási jog XML generálás Database projekthez

Ha Visual Studioban Database projektet használsz az alkalmazásod adatbázisának felépítéséhez, akkor ott XML-ben kell megadnod, hogy deploy-kor mely tárolteljárásokat ki futtathasson. Valahogy így:

<PermissionStatement Action="GRANT">
    <Permission>EXECUTE</Permission>
    <Grantee>TheUser</Grantee>
    <Object Name="MyStoredProcedure" Schema="dbo" Type="OBJECT" />
    <Grantor>dbo</Grantor>
</PermissionStatement>

Ha már van sok tárolteljárásod, és nem írtad meg még az XML-t, akkor az alábbi SQL szkript kigenerálja Neked. Csak futtasd le egy Management Studioban, és másold be a Database projektedbe (a Database.sqlpermissions fájlba). Néhány ezer sor kódolást takaríthatsz meg vele.

SELECT
    '<PermissionStatement Action="GRANT">'+
    '    <Permission>EXECUTE</Permission>'+
    '    <Grantee>TheUser</Grantee>'+
    '    <Object Name="' + ROUTINE_NAME + '" Schema="' + ROUTINE_SCHEMA + '" Type="OBJECT" />'+
    '    <Grantor>dbo</Grantor>'+
    '</PermissionStatement>'
FROM INFORMATION_SCHEMA.ROUTINES
WHERE OBJECTPROPERTY(OBJECT_ID(ROUTINE_NAME),'IsMSShipped') = 0
    AND ROUTINE_TYPE='procedure'
    AND ROUTINE_NAME NOT LIKE 'aspnet_%'

A fenti szkript a “TheUser” nevű felhasználónak/szerepkörnek fog futási jogot adni.



Dávid Zoltán

Dávid Zoltán Mérnök Informatikusként végeztem a BME-n, jelenleg webfejlesztéssel és gépi tanulással foglalkozom.

2010.07.28. 13:49:24 | Permalink | Hozzászólások: 0 | Tárgyszavak: , , ,


  • Kertem

    Dávid Zoltán Tegnap a városligetben kerekeztem, mikor a műjégpálya mellett az Olof Palme sétányon (ahol a buszok tilsoban parkolnak) megláttam a Kertem nevű szórakozóhelyet. Nem tudom mikor nyílt, eddig még nem vettem észre, pedig erre szoktam jönni, ha az Andrássy-Örs vezér tér útvonalon mozgok. Bementem, leültem, megnéztem. Tovább »
  • Hova kattintottam?

    Balássy György (MS RD, ASP.NET MVP, MCTS) Gyakori feladat, hogy megjelenítjük az adatokat egy weboldalon és szeretnénk biztosítani a felhasználónak, hogy valamelyik rekordra kattintva ilyen vagy éppen olyan műveletet végezzen el az adott soron. Valami oknál fogva a szokásos fejlesztői hozzáállás a feladathoz az, hogy a gomb kattintás eseménykezelőjében elkezdjük keresgélni, hogy vajon melyik rekordra kattinthatott szerencsétlen felhasználó és ilyenkor az ember hajlamos elveszni a SelectedItem, SelectedIndex, DataItem, DataRow, DataRowView, DataRowItem és társai között. Tovább »


Írja meg Ön is véleményét!


Hozzászólásokat csak regisztrált, bejelentkezett felhasználóktól tudunk elfogadni!

Hozzászólások