M
MJB222398
Guest
I am getting exceptions thrown when trying to set certain permissions for a given user (they are a contained DB user) on a a given schema. Below is an excerpt of my code, the lines commented out are the ones I have had problems with so far. So the issues seem to be for the following permissions:
1. CONNECT
2. IMPERSONATE
3. SEND
4. RECEIVE
The exceptions I get are like the following when the GRANT for CONNECT is done (some nested inner exceptions), these are the three messages from these:
Grant failed for Schema 'dbint_45'.
An exception occurred while executing a Transact-SQL statement or batch.
Incorrect syntax near 'CONNECT'.
I cannot find any extra information than this, why is this happening? Is there a way I can debug to get more information? Can I get the actual SQL statement that is being executed?
var revokedPerms = new ObjectPermissionSet();
var deniedPerms = new ObjectPermissionSet();
var grantedPerms = new ObjectPermissionSet();
//revokedPerms.Add(ObjectPermission.Connect);
if (isNewUser)
{
//Set permissions on schema to allow access to Views for this client only
grantedPerms.Add(ObjectPermission.Select);
deniedPerms.Add(ObjectPermission.Alter);
deniedPerms.Add(ObjectPermission.CreateSequence);
deniedPerms.Add(ObjectPermission.Delete);
//deniedPerms.Add(ObjectPermission.Impersonate);
deniedPerms.Add(ObjectPermission.Insert);
//deniedPerms.Add(ObjectPermission.Receive);
deniedPerms.Add(ObjectPermission.References);
//deniedPerms.Add(ObjectPermission.Send);
deniedPerms.Add(ObjectPermission.TakeOwnership);
deniedPerms.Add(ObjectPermission.Update);
deniedPerms.Add(ObjectPermission.ViewChangeTracking);
}
//Disable access to DB if this feature is disabled for the client
if (isEnabled)
{
//grantedPerms.Add(ObjectPermission.Connect);
}
else
{
//deniedPerms.Add(ObjectPermission.Connect);
}
//Apply these permissions
if (!revokedPerms.Equals(new ObjectPermissionSet()))
schema.Revoke(revokedPerms, userName, false, false);
if (!deniedPerms.Equals(new ObjectPermissionSet()))
schema.Deny(deniedPerms, userName, false);
if (!grantedPerms.Equals(new ObjectPermissionSet()))
schema.Grant(grantedPerms, userName, false);
schema.Alter();
Continue reading...
1. CONNECT
2. IMPERSONATE
3. SEND
4. RECEIVE
The exceptions I get are like the following when the GRANT for CONNECT is done (some nested inner exceptions), these are the three messages from these:
Grant failed for Schema 'dbint_45'.
An exception occurred while executing a Transact-SQL statement or batch.
Incorrect syntax near 'CONNECT'.
I cannot find any extra information than this, why is this happening? Is there a way I can debug to get more information? Can I get the actual SQL statement that is being executed?
var revokedPerms = new ObjectPermissionSet();
var deniedPerms = new ObjectPermissionSet();
var grantedPerms = new ObjectPermissionSet();
//revokedPerms.Add(ObjectPermission.Connect);
if (isNewUser)
{
//Set permissions on schema to allow access to Views for this client only
grantedPerms.Add(ObjectPermission.Select);
deniedPerms.Add(ObjectPermission.Alter);
deniedPerms.Add(ObjectPermission.CreateSequence);
deniedPerms.Add(ObjectPermission.Delete);
//deniedPerms.Add(ObjectPermission.Impersonate);
deniedPerms.Add(ObjectPermission.Insert);
//deniedPerms.Add(ObjectPermission.Receive);
deniedPerms.Add(ObjectPermission.References);
//deniedPerms.Add(ObjectPermission.Send);
deniedPerms.Add(ObjectPermission.TakeOwnership);
deniedPerms.Add(ObjectPermission.Update);
deniedPerms.Add(ObjectPermission.ViewChangeTracking);
}
//Disable access to DB if this feature is disabled for the client
if (isEnabled)
{
//grantedPerms.Add(ObjectPermission.Connect);
}
else
{
//deniedPerms.Add(ObjectPermission.Connect);
}
//Apply these permissions
if (!revokedPerms.Equals(new ObjectPermissionSet()))
schema.Revoke(revokedPerms, userName, false, false);
if (!deniedPerms.Equals(new ObjectPermissionSet()))
schema.Deny(deniedPerms, userName, false);
if (!grantedPerms.Equals(new ObjectPermissionSet()))
schema.Grant(grantedPerms, userName, false);
schema.Alter();
Continue reading...