00001 /*
00002 * Copyright (C) 2004-2006 Autodesk, Inc.
00003 *
00004 * This library is free software; you can redistribute it and/or
00005 * modify it under the terms of version 2.1 of the GNU Lesser
00006 * General Public License as published by the Free Software Foundation.
00007 *
00008 * This library is distributed in the hope that it will be useful,
00009 * but WITHOUT ANY WARRANTY; without even the implied warranty of
00010 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
00011 * Lesser General Public License for more details.
00012 *
00013 * You should have received a copy of the GNU Lesser General Public
00014 * License along with this library; if not, write to the Free Software
00015 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
00016 *
00017 * Revision Control Modification History
00018 *
00019 * $Id: //Providers/Utilities/UserMgr/inc/Utilities/UserMgr/FdoUserManager.h#1 $
00020 * $Author: ds $
00021 * $DateTime: 2005/12/05 11:20:19 $
00022 * $Change: 9547 $
00023 *
00024 */
00025
00026 #pragma once
00027
00028 BEGIN_NAMESPACE_AUTODESK_FDO_FDO_UTILITIES_USERMGR
00029
00030 public __gc __interface IUserManager : public System::IDisposable
00031 {
00032 public:
00033 /// <summary> SQL Server and MySQL use explicit grants to datastores. <\summary>
00034 /// <returns> Returns true if the RDBMS use explicit grants <\returns>
00035 System::Boolean SupportsDatastoreGrants();
00036
00037 /// <summary> SQL Server can use Windows authenticated users. <\summary>
00038 /// <returns> Returns true if the RDBMS use Windows authenticated users.<\returns>
00039 System::Boolean SupportsWindowsAuthentication();
00040
00041 /// <summary> Adds a new user to the RDBMS. <\summary>
00042 /// <param name="name">Input the user name</param>
00043 /// <param name="password">Input the user's password </param>
00044 /// <returns> Returns nothing <\returns>
00045 System::Void AddUser( System::String* name, System::String* password);
00046
00047 /// <summary> Supported by SQL Server. Adds a Windows user to the server. <\summary>
00048 /// <param name="domain">Input the Windows domain name</param>
00049 /// <param name="name">Input the user name</param>
00050 /// <returns> Returns nothing <\returns>
00051 System::Void ApplyWindowsUser(System::String* domain, System::String* name);
00052
00053 /// <summary> Removes a user from the RDBMS. <\summary>
00054 /// <param name="name">Input the user name</param>
00055 /// <returns> Returns nothing <\returns>
00056 System::Void DropUser(System::String* name);
00057
00058 /// <summary> Supported by Oracle. Assigns a role to the specified user. <\summary>
00059 /// <param name="name">Input the user name</param>
00060 /// <param name="roleOrPrivilege">Input the role name. </param>
00061 /// <returns> Returns nothing <\returns>
00062 System::Void AssignRoleOrPrivilege(System::String* name, System::String* roleOrPrivilege);
00063
00064 /// <summary> Supported by Oracle. Revokes a role from the specified user. <\summary>
00065 /// <param name="name">Input the user name</param>
00066 /// <param name="roleOrPrivilege">Input the role name. </param>
00067 /// <returns> Returns nothing <\returns>
00068 System::Void RevokeRoleOrPrivilege(System::String* name, System::String* roleOrPrivilege);
00069
00070 /// <summary> Supported by SQL Server and MySQL. Grants explicit access to a dataStore with the default privileges. <\summary>
00071 /// <param name="name">Input the user name</param>
00072 /// <param name="dataStore">Input the dataStore name</param>
00073 /// <returns> Returns nothing <\returns>
00074 System::Void GrantAccessToDatastore(System::String* name, System::String* dataStore);
00075
00076 /// <summary> Supported by SQL Server and MySQL. Grants access to a dataStore with the specified privilege. <\summary>
00077 /// <param name="name">Input the user name</param>
00078 /// <param name="dataStore">Input the dataStore name</param>
00079 /// <param name="roleOrPrivilege">Input the privilege name. </param>
00080 /// <returns> Returns nothing <\returns>
00081 System::Void GrantAccessToDatastore(System::String* name, System::String* dataStore, System::String* roleOrPrivilege);
00082
00083 /// <summary> Supported by SQL Server and MySQL. Revokes an access privilege against a datastore.
00084 /// If roleOrPrivilege is set to '*', all roles or privileges are revoked from the specified user; on SQL Server
00085 /// this will also remove the user from that datastore.<\summary>
00086 /// <param name="name">Input the user name</param>
00087 /// <param name="dataStore">Input the dataStore name</param>
00088 /// <param name="roleOrPrivilege">Input the privilege name. </param>
00089 /// <returns> Returns nothing <\returns>
00090 System::Void RevokeAccessToDatastore(System::String* name, System::String* dataStore, System::String* roleOrPrivilege);
00091
00092 /// <summary> Gets a reader over all RDBMS users. <\summary>
00093 /// <returns> Returns the reader <\returns>
00094 NAMESPACE_AUTODESK_FDO_FDO_UTILITIES_USERMGR::DbUserReader* GetDbUsers();
00095
00096 /// <summary> Supported by SQL Server and MySQL. Gets a reader over the users of a specific dataStore. <\summary>
00097 /// <param name="dataStore">Input the dataStore name</param>
00098 /// <returns> Returns the reader <\returns>
00099 NAMESPACE_AUTODESK_FDO_FDO_UTILITIES_USERMGR::DbUserReader* GetDbUsers(System::String* dataStore);
00100
00101 /// <summary> Gets the list of the datastores. <\summary>
00102 /// <returns> Returns the list of datastores <\returns>
00103 NAMESPACE_OSGEO_COMMON::StringCollection* GetDatastores(System::Boolean includeAllDataStores);
00104
00105 /// <summary> Gets the list of supported Roles or Privileges. <\summary>
00106 /// <returns> Returns the list of supported Roles or Privileges. <\returns>
00107 NAMESPACE_OSGEO_COMMON::StringCollection* GetRolesOrPrivileges();
00108 };
00109
00110 END_NAMESPACE_AUTODESK_FDO_FDO_UTILITIES_USERMGR
00111