Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[MSSQL2008] Voeg alle actieve users to aan Database

Pagina: 1
Acties:

  • Snors
  • Registratie: Oktober 2007
  • Laatst online: 18-10 12:34
Allen,

Ik heb een server met bijna 700 SQL Logins(800 met de disabled accounts meegerekend). Alle actieve SQL logins moeten toegevoegd worden aan een database met een bepaalde Database role. Ik weet hoe ik dit user voor user kan doe namelijk met:
MSSQL:
1
sp_adduser 'SQL LOGIN NAME' 'DB LOGIN NAME' 'DATABASE ROLE'


Nu snap ik alleen niet hoe ik gemakkelijk door mijn SQL Logins kan loopen en bovenstaande code alleen uitvoeren mits de SQL Login actief is en niet gedisabled....

Wie o wie helpt mij een stap verder.

  • Brahiewahiewa
  • Registratie: Oktober 2001
  • Laatst online: 30-09-2022

Brahiewahiewa

boelkloedig

Een scriptje in je favoriete scripttaal wat alle users dumpt, inclusief het disabled-bitje
if disabled = false then sp-adduser .....

QnJhaGlld2FoaWV3YQ==


  • Oogje
  • Registratie: Oktober 2003
  • Niet online
Query maken die alleen de enabled users ophaalt en die output gebruiken kan ook.

Any errors in spelling, tact, or fact are transmission errors.


  • Wilko990
  • Registratie: Januari 2002
  • Niet online
Probeer het volgende eens.
(waarom geen windows groep of staat de server in een werkgroep)

Use [jouw_database]
go

declare loop_user cursor for
select name FROM sys.database_principals where type = 'S' AND is_Disabled = 0
open loop_user
declare @user varchar(50)
fetch next from loop_user into @user
while (@@FETCH_STATUS = 0)
begin
EXEC sp_adduser @user, @user, 'db_datareader'
fetch next from loop_user into @user
end
close loop_user
deallocate loop_user

[ Voor 22% gewijzigd door Wilko990 op 06-10-2013 13:39 ]


  • The Eagle
  • Registratie: Januari 2002
  • Nu online

The Eagle

I wear my sunglasses at night

Los van het feit dat dit niet zo lastig zou moeten zijn met een beetje SQL: denk je ook even aan je licenties? 800 users access geven kan soms aardig in de papieren lopen namelijk :)

Disclaimer: ik ken de license policy van MS niet, wel die van Oracle. Daar kan he een vrij duur grapje zijn, afhankelijk van het gekozen licentiemodel.

Al is het nieuws nog zo slecht, het wordt leuker als je het op zijn Brabants zegt :)


  • barber
  • Registratie: Oktober 2001
  • Niet online
The Eagle schreef op zaterdag 05 oktober 2013 @ 22:24:
Los van het feit dat dit niet zo lastig zou moeten zijn met een beetje SQL: denk je ook even aan je licenties? 800 users access geven kan soms aardig in de papieren lopen namelijk :)

Disclaimer: ik ken de license policy van MS niet, wel die van Oracle. Daar kan he een vrij duur grapje zijn, afhankelijk van het gekozen licentiemodel.
Los even dat MS zowel een per core als per user licentiemodel heeft.

Zover ik de TS begrijp hebben deze users al toegang tot SQL Server (actieve sql logins), maar moeten ze alleen nog specifiek toegang krijgen tot een bepaalde database op die server. Dus er worden geen nieuwe users toegevoegd.

  • Turdie
  • Registratie: Maart 2006
  • Laatst online: 20-08-2024
Waarom maak je geen Active Directory security groep aan en knal daar door middel van een script de users en voeg je die toe aan de database, maak het ook makkelijker voor jezelf in de toekomst :)
Pagina: 1