// *************************************************************************** // Copyright (C) 1991-2003 SQLDev.Net // // $BeginHeader$ // // @file@: AddUser.cpp // @author@: Gert E.R. Drapers (GertD@SQLDev.Net) // @description@: Example: Adding user to database using SQL-DMO // @remarks@: // @created@: 2003-02-20 // @lastsaved@: 2003-02-20 // // update history: // @version@ @initials@ @updatedate@ @release@ @description@ // 00000 GED 2003-02-20 v1.0.0.0 created // // @EndHeader@ // *************************************************************************** #define STRICT // strict type checking #define UNICODE // Unicode #define _UNICODE // Unicode #define WIN32_LEAN_AND_MEAN // do not include the world #define INC_OLE2 // include OLE/COM files #include #include #include #include #include "C:\Program Files\Microsoft SQL Server\80\Tools\DevTools\Include\sqldmoid.h" #include "C:\Program Files\Microsoft SQL Server\80\Tools\DevTools\Include\sqldmo.h" INT _tmain(INT argc, TCHAR* argv[], TCHAR* envp[]) { HRESULT hr; TCHAR lpServer[] = _T("(local)\\dev"); TCHAR lpLogin[] = _T("GERTD00\\SQLAgentProxyAccnt"); TCHAR lpUserName[] = _T("SQLAgentProxyAccnt"); TCHAR lpDatabase[]= _T("msdb"); if FAILED(hr = CoInitialize(NULL)) { goto error; } // initialize SQLServer object // LPSQLDMOSERVER2 pSQLServer = NULL; if FAILED(hr = CoCreateInstance(CLSID_SQLDMOServer2, NULL, CLSCTX_INPROC_SERVER, IID_ISQLDMOServer2, (LPVOID*)&pSQLServer)) { goto error; } hr = pSQLServer->SetLoginSecure(TRUE); hr = pSQLServer->Connect(lpServer); LPSQLDMODATABASE2 pDatabase = NULL; if FAILED(hr = pSQLServer->GetDatabaseByName(lpDatabase, (LPSQLDMODATABASE*) &pDatabase)) { goto error; } LPSQLDMOUSERS pUsers = NULL; if FAILED(pDatabase->GetUsers(&pUsers)) { goto error; } LPSQLDMOUSER2 pUser = NULL; if FAILED(hr = CoCreateInstance(CLSID_SQLDMOUser2, NULL, CLSCTX_INPROC_SERVER, IID_ISQLDMOUser2, (LPVOID*)&pUser)) { goto error; } pUser->SetLogin(lpLogin); pUser->SetName(lpUserName); if FAILED(pUsers->Add(pUser)) { goto error; } hr = S_OK; error: if (pUser) { pUser->Release(); pUser = NULL; } if (pUsers) { pUsers->Release(); pUsers = NULL; } if (pDatabase) { pDatabase->Release(); pDatabase = NULL; } if (pSQLServer) { pSQLServer->DisConnect(); pSQLServer->Release(); pSQLServer = NULL; } CoUninitialize(); return hr; }