// *************************************************************************** // Copyright (C) 1991-2003 SQLDev.Net // // $BeginHeader$ // // @file@: AddLoginNoSp.cpp // @author@: Gert E.R. Drapers (GertD@SQLDev.Net) // @description@: Example: Adding SQL Server Login using SQL-DMO // @remarks@: // @created@: 2003-02-18 // @lastsaved@: 2003-02-18 // // update history: // @version@ @initials@ @updatedate@ @release@ @description@ // 00000 GED 2003-02-18 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 lpUser[] = _T("GERTD00\\SQLAgentProxyAccnt"); TCHAR lpDatabase[]= _T("msdb"); TCHAR lpLanguage[]= _T("us_english"); SQLDMO_LOGIN_TYPE eLoginType = SQLDMOLogin_NTUser; // SQLDMOLogin_NTGroup // SQLDMOLogin_NTUser // SQLDMOLogin_Standard 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); LPSQLDMOLOGIN2 pLogin = NULL; if SUCCEEDED(hr = pSQLServer->GetLoginByName(lpUser, (LPSQLDMOLOGIN*) &pLogin)) { hr = pLogin->Remove(); pLogin->Release(); pLogin = NULL; } if FAILED(hr = CoCreateInstance(CLSID_SQLDMOLogin2, NULL, CLSCTX_INPROC_SERVER, IID_ISQLDMOLogin2, (LPVOID*)&pLogin)) goto error; hr = pLogin->SetType(eLoginType); hr = pLogin->SetName(lpUser); hr = pLogin->SetDatabase(lpDatabase); hr = pLogin->SetLanguage(lpLanguage); LPSQLDMOLOGINS pLogins = NULL; if FAILED(hr = pSQLServer->GetLogins(&pLogins)) goto error; if FAILED(hr = pLogins->Add(pLogin)) goto error; hr = S_OK; error: if (pLogin) { pLogin->Release(); pLogin = NULL; } if (pLogins) { pLogins->Release(); pLogins = NULL; } if (pSQLServer) { pSQLServer->DisConnect(); pSQLServer->Release(); pSQLServer = NULL; } CoUninitialize(); return hr; }