Vet någon hur jag kan sätta behörighet för ASP processens konto, som ligger på en ASP sida på en annan maskin, så den inte har rätt att exekvera system SPROC eller rätt att skriva select i systemtabellerna? Default är att den inte ens får logga in... Jag har SPROC-ar i en db med endast exec på dem - allt annat av. Från denna db så skall ASP usern sedan access en massa replikerade dbs som accessas i SPROC via parameters som går in i textsträngar som pekar på rätt db. Det är Select/Update/Insert/Delete i dessa db på en massa tabeller. Har därigenom satt ASP userns som db owner för att slippa underhålla en massa rättigheter i en massa databaser. (Det blir rätt mycket eftersom det är replikerade dbs). Det kanske inte är begåvat men minskar underhållet radikalt. Det är ju väldigt motstridigt, det du säger! Jag det är rätt - säger emot mig själv. Får väl bita i det sura admin & underhålls... Bra :)Behörighet i SQL server för ASP processens konto
Jag behöver alltså begränsa rätten för kontot så mycket som möjligt så att den bara har rätt att exekvera de SPROC jag vill.
Om behörigheten begränsas för att läsa i systemobjekten kommer det att bli andra problem i så fall?
Mvh
//LEBSv: Behörighet i SQL server för ASP processens konto
Har den massa rättigheter, så beror det på att du gett den det.
Systemprocedurer och systemtabeller har visserligen guest rättigheter på. Vad är det för problem du stött på som gör detta önskvärt att ändra?
Vissa procedurer/tabeller måste du ha rättigheter på för att kunna använda SQL Server överhuvudtaget.
/mickeSv:Behörighet i SQL server för ASP processens konto
Om det finns andra alternativ tas de emot tacksamt.
Mvh
//LEB
Exempel enligt nedan.
@Db är den replikerade db, som det finns en massa av, likadana. @SQL är den sträng som bygger SQL sats som sedan exekveras. Det kan bli upp mot 3000 tecken som byggs ihop på de större sql-satserna.
CREATE procedure DP_CheckIfHeadComment
@Db as Varchar(25), @OrderNo as varchar(10)
as
Declare @SQL as Varchar(2000)
Set @SQL = 'IF
(SELECT len(cComment) as Value
From Replica' + @Db + '.dbo.dWebOrder
Where nOrderNo = '+ @OrderNo + ') > 0
Begin
(SELECT len(cComment) as Value
From Replica' + @Db + '.dbo.dWebOrder
Where nOrderNo = '+ @OrderNo + ')
End
Else
Select 0 as Value'
Execute (@SQL)Sv: Behörighet i SQL server för ASP processens konto
Du vill begränsa rättigheten för användaren, sedan har du satt den som db_owner (=högsta nivån) för att slippa att administrera rättigheter...
/mickeSv:Behörighet i SQL server för ASP processens konto
//LEBSv: Behörighet i SQL server för ASP processens konto
Om du gör en egen roll i databasen och sätter rättigheter på den, så är det inte så mycket underhåll.
Får du funderingar om hur - fråga. Lycka till!
/micke