Hi,
you can find all you need inside the NetSqlAzMan Guide.pdf.
This is an example of how use the NetSqlAzMan_AuthorizationInsert:
DECLARE @RC
int
DECLARE @ItemId
int
DECLARE @ownerSid
varbinary(85)
DECLARE @ownerSidWhereDefined
tinyint
DECLARE @objectSid
varbinary(85)
DECLARE @objectSidWhereDefined
tinyint
DECLARE @AuthorizationType
tinyint
DECLARE @ValidFrom
datetime
DECLARE @ValidTo
datetime
DECLARE @ApplicationId
int
SET @ownerSid
= SUSER_SID('Domain\User inserting the new authorization')
-- WhereDefined can be:
-- 0 - Store;
-- 1 - Application;
-- 2 - LDAP;
-- 3 - Local;
-- 4 - Database
SET @ownerSidWhereDefined
= 2
SET @objectSid
= SELECT
TOP 1 CONVERT(VARBINARY(85), UserID)
AS DBUserSid
FROM dbo.UsersDemo
WHERE UserName
= 'my db user'
-- WhereDefined can be:
-- 0 - Store;
-- 1 - Application;
-- 2 - LDAP;
-- 3 - Local;
-- 4 - Database
SET @ownerSidWhereDefined
= 4
EXECUTE @RC
= [NetSqlAzManStorage].[dbo].[netsqlazman_AuthorizationInsert]
@ItemId
,@ownerSid
,@ownerSidWhereDefined
,@objectSid
,@objectSidWhereDefined
,@AuthorizationType
,@ValidFrom
,@ValidTo
,@ApplicationId
And here is an example of doing the same thing using the NetSqlAzMan.dll DOM
(C# Samples.cs … inside the installation folder):
///
<summary>
/// Create a Full Storage through .NET code
/// </summary>
private void CreateFullStorage()
{
// USER MUST BE A MEMBER OF SQL DATABASE ROLE: NetSqlAzMan_Administrators
//Sql Storage connection string
string sqlConnectionString =
"data source=(local);initial catalog=NetSqlAzManStorage;user id=netsqlazmanuser;password=password";
//Create an instance of SqlAzManStorage class
IAzManStorage storage =
new SqlAzManStorage(sqlConnectionString);
//Open Storage Connection
storage.OpenConnection();
//Begin a new Transaction
storage.BeginTransaction(AzManIsolationLevel.ReadUncommitted);
//Create a new Store
IAzManStore newStore = storage.CreateStore("My Store",
"Store description");
//Create a new Basic StoreGroup
IAzManStoreGroup newStoreGroup = newStore.CreateStoreGroup(SqlAzManSID.NewSqlAzManSid(),
"My Store Group",
"Store Group Description", String.Empty, GroupType.Basic);
//Retrieve current user SID
IAzManSid mySid =
new SqlAzManSID(((System.Threading.Thread.CurrentPrincipal.Identity
as WindowsIdentity) ??
WindowsIdentity.GetCurrent()).User);
//Add myself as sid of "My Store Group"
IAzManStoreGroupMember storeGroupMember = newStoreGroup.CreateStoreGroupMember(mySid, WhereDefined.Local,
true);
//Create a new Application
IAzManApplication newApp = newStore.CreateApplication("New Application",
"Application description");
//Create a new Role
IAzManItem newRole = newApp.CreateItem("New Role",
"Role description", ItemType.Role);
//Create a new Task
IAzManItem newTask = newApp.CreateItem("New Task",
"Task description", ItemType.Task);
//Create a new Operation
IAzManItem newOp = newApp.CreateItem("New Operation",
"Operation description", ItemType.Operation);
//Add "New Operation" as a sid of "New Task"
newTask.AddMember(newOp);
//Add "New Task" as a sid of "New Role"
newRole.AddMember(newTask);
//Create an authorization for myself on "New Role"
IAzManAuthorization auth = newRole.CreateAuthorization(mySid, WhereDefined.Local, mySid, WhereDefined.Local,
AuthorizationType.AllowWithDelegation, null,
null);
//Create a custom attribute
IAzManAttribute<IAzManAuthorization> attr = auth.CreateAttribute("New Key",
"New Value");
//Create an authorization for DB User "Andrea" on "New Role"
IAzManAuthorization auth2 = newRole.CreateAuthorization(mySid, WhereDefined.Local, storage.GetDBUser("Andrea").CustomSid,
WhereDefined.Local, AuthorizationType.AllowWithDelegation,
null, null);
//Commit transaction
storage.CommitTransaction();
//Close connection
storage.CloseConnection();
}
Regards,
Andrea.
__________________________________
Andrea Ferendeles
NetSqlAzMan Project Coordinator
E-mail
aferende@hotmail.com
Web http://netsqlazman.codeplex.com