Ik heb een stored procedure A in database A:
userWithRights heeft op de 'master' rechten voor created database.
Als ik bovenstaande stored procedure uitvoer in de 'master' dan maakt hij netjes een database aan.
Als ik deze uitvoer in database A krijg ik de melding:
De bedoeling is dat een user zonder rechten, behalve voor het executen van Stored Procedure A via deze stored procedure een database kan aanmaken. Execute As leek me makkelijker dan het werken met certificaten. Ik ben me bewust van de nadelen van execute as.
Ook als ik de user 'userWithRights' sysadmin rechten geef, krijg ik deze fout.
Hoe los ik dit op?
code:
1
2
3
| declare @sql as varchar(255) set @sql = 'create database testtest' exec(@sql) as user = 'userWithRights' |
userWithRights heeft op de 'master' rechten voor created database.
Als ik bovenstaande stored procedure uitvoer in de 'master' dan maakt hij netjes een database aan.
Als ik deze uitvoer in database A krijg ik de melding:
code:
1
| CREATE DATABASE permission denied in database 'master'. |
De bedoeling is dat een user zonder rechten, behalve voor het executen van Stored Procedure A via deze stored procedure een database kan aanmaken. Execute As leek me makkelijker dan het werken met certificaten. Ik ben me bewust van de nadelen van execute as.
Ook als ik de user 'userWithRights' sysadmin rechten geef, krijg ik deze fout.
Hoe los ik dit op?