Er der nogen som har et script der på en given database kan oprette en bruger, som kun har read rettigheder på bestemte tabeller og ingen rettigheder på resten.
if not exists (select * from master.dbo.syslogins where loginname = N'newUser') exec sp_grantlogin N'newUser' exec sp_defaultlanguage N'newUser', N'us_english' GO
if not exists (select * from dbo.sysusers where name = N'newUser' and uid < 16382) EXEC sp_grantdbaccess N'newUser', N'newUser' GO
-- HVIS DU VIL GIVE LÆSERETTIGHEDER PÅ ALLE TABELLER I DATABASEN MyDatabase.. Use [MyDatabase] GO exec sp_addrolemember N'db_datareader', N'newUser' GO
-- HVIS DU VIL GIVE LÆSERETTIGHEDER PÅ TABELLEN MyTable I DATABASEN MyDatabase.. Use [MyDatabase] GO GRANT SELECT ON [MyTable] TO [newUser] GO
Hvis jeg smider scriptet direkte ind i QA og erstatter Mydatabase med et eksisterende databasenavn, klager den over at NewUser ikke eksisterer. Er det fordi man skal erstatte NewUser med en eksisterende user på databasen ?
Er det muligt at selektere et udvalg af tabeller der skal gives læserettigheder på når vi taler om 300 tabeller hvor de 100 skal undlades ?
Altså den første del - frem til den første kommentar - skulle gerne etablere brugeren som bruger på database-serveren. Først herefter kan du begynde at give brugeren rettigheder til databasen MyDatabase.
Jeg er i tvivl om, hvad du mener mht. at "selektere et udvalg tabeller" - altså, du kan skrive de navngivne tabeller i dit script som..
GRANT SELECT ON [MyTable1] TO [newUser] GO GRANT SELECT ON [MyTable2] TO [newUser] GO GRANT SELECT ON [MyTable3] TO [newUser] GO etc...
Men jeg kender ikke til nogen måde, hvorpå man kan lave et dynamisk grant ( ie. på en variabel med tabel-navnet.. er det ikke det du mener?) Men du kan jo bruge SQL til at generere dit script - prøv at køre dette :
SELECT 'GRANT SELECT ON ' + name + ' TO newUser' + char(10) + 'GO' + char(10)+char(10) FROM sysobjects WHERE type='U' ORDER BY name
Hvis du har så mange tabeller vil jeg i øvrigt nok råde dig til at bruge roller i stedet for at tildele rettigheder til den enkelte bruger.
Jeg har fået lavet et lille script som man kan afvikle i QA og bede skrive til fil, herefter kan filen så afvikles i QA og give GRANT på de ønskede tabeller.
Jeg tildeler dig point, da du har givet noget af løsningen. Tak for hjælpen.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.