I'd like to create a table in my SQL Server database running on a local instance and populate it with mine predicitve model written in R; to which aim I call these lines of R script:
predictionSql = RxSqlServerData(table = "Logit_FPD60_ZIP", connectionString = connStr)
predict_logit = rxPredict(logit_model, input_data, outData = predictionSql)
...which returns:
[Microsoft][ODBC SQL Server Driver][SQL Server]Login failed for user
'my server'.
I can establish a connection and preview data from the server.
I've tried:
Set SQL Server and Windows Authentication mode in my SQL Server
Security properties and restart both the service and Lunchpad.
Create a generic SQL Server Connector
which is:
[ODBC] DRIVER=SQL Server Native Client 11.0 DATABASE=Predict
WSID=NB-IT-JIRAK APP=Operační systém Microsoft® Windows®
Trusted_Connection=Yes SERVER=NB-IT-JIRAK\SJ Description=Generic SQL
Connector
I'm using this connection string in R:
connStr <- paste("Driver=SQL Server; Server=", "NB-IT-JIRAK\\SJ",
";Database=", "Predict", ";Trusted_Connection=true", sep = "");
What am I missing? New to R, help would be appreciated. Thanks in advance.
Change connection string to sa if it is a test machine or a use a privileged account:
connection_string <- sprintf("Driver=SQL Server;Server=%s;Database=%s;Uid=sa;Pwd=mypass", server, db_name)
commented: --> connection_string <- sprintf("Driver=SQL Server;Server=%s;Database=%s;Trusted_Connection=Yes", server, db_name)
Related
I want to connect to AzureSQL database using DBI in R. I want to manage this connection via AzureAD ActiveDirectoryPassword authentication. This requires me to state the AzureAD UID and Password.
I have verified that I can connect to this server using other authentication methods.
Running the code below results in an error :
DBI::dbConnect(
odbc()
, Driver = "SQL Server"
, .connection_string =
sprintf("server=%s;database=dbName;UID=%s;PWD=%s;Authentication=%s;"
, 'sqlservername.database.windows.net'
, 'justin#contoso.com'
, pwd # Let's just assume this is securely done for now
, 'ActiveDirectoryPassword'))
Expected result was to connect to the database
Actual result was the following:
Error: nanodbc/nanodbc.cpp:950: HY000: [Microsoft][ODBC SQL Server Driver][SQL Server]Cannot open server "contoso.com" requested by the login. The login failed.
I think the # in the username is not behaving in the way I initially expected that it might. How do I make this connection work? - I think I just need to find the correct format to express (escape?) the username.
This worked for me
DBI::dbConnect(
odbc()
, Driver = "SQL Server"
, .connection_string =
sprintf("server=%s;database=%s;UID=%s;PWD=%s;Authentication=%s;"
, 'sqlservername.database.windows.net'
, 'databasename'
, 'user#company.com'
, pwd # Let's just assume this is securely done for now
, 'ActiveDirectoryPassword'))
I am trying to connect to SQL server from iccube Web UI, but when I set up the Data Source connection like this
Name: TestDataBase
DriverType: SQL Server
ServerName: localhost
DB Name: TestDataBase
User: MyWindowsUserName
Password: **********
(my windows username and password).
, I got the following error:
JDBC connection for url 'jdbc:sqlserver://localhost:1433;databaseName=TestDataBase;' and user 'MyWindowsUsername' cannot be created due to error 'Login failed for user 'MyWindowsUsername'.
What am I missing, and can I somehow use integratedSecurity so I can login with my windows credentials as I do from SQL Server Management studio.
You can try to setup the connection string as mentionned by Hermes (or here) using the "Server Name" and "DB Name" to define the actual JDBC class name and connection string (check the help icons closed to each fields):
Hope that helps.
Try
jdbc:sqlserver://localhost:1433;databaseName=TestDataBase;integratedSecurity=true;
I connect to an AS400 database using DB2OLEDB v5 as a linked server from SQL Server 2016--but Binary to Character will not translate. All binary fields on the AS400 database are returned as hex on the SQL Server. Has anyone had success using this type of linked server from SQL Server 2016? The provider string below is the same one I used successfully on SQL Server 2012. I really appreciate any help that can be provided. Here is my Provider string:
exec master.dbo.sp_addlinkedserver #server = N'JDE'
, #srvproduct = N'DB2OLEDB'
, #provider = N'DB2OLEDB'
, #datasrc = N'192.168.x.x'
, #provstr = N'Provider=DB2OLEDB;
User ID=########;
Password=########;
Initial Catalog=S06822B5;
Network Transport Library=TCPIP;
Host CCSID=37;
PC Code Page=1252;
Network Address=192.168.x.x;
Network Port=446;
Package Collection=QGPL;
Default Schema=CRDDTA;
Process Binary as Character=True;
Units of Work=RUW;
DBMS Platform=DB2/AS400;
Use Early Metadata=False;
Defer Prepare=False;
DateTime As Char=False;
Rowset Cache Size=0;
Datetime As Date=False;
AutoCommit=True;
Authentication=Server;
Decimal As Numeric=False;
Derive Parameters=True;
LoadBalancing=False;
Persist Security Info=False;
Cache Authentication=False;
Mode=Read;
Connection Pooling=False;'
, #catalog = N'S06822B5'
/* For security reasons the linked server remote logins password is changed with ######## */
and
exec master.dbo.sp_addlinkedsrvlogin #rmtsrvname = N'JDE'
, #useself = N'False'
, #locallogin = null
, #rmtuser = N'connect'
, #rmtpassword = '########'
Suggestion: for correct connection string and SQL server version use DB2OLEDBV6_x64.msi which part of SQL SERVER 2016 SP2 Feature Pack
I want to connect to the other database using LoginProperty class. I did it in two different ways:
Create a DNS system object, using loginProperty class and connect to the DB. This way it works fine.
In the other way, i wants to creat a 'Connection String' and connect to the DB. In this way i am getting an error.
ODBC operation failed. Unable to logon to the database.
[Microsoft][ODBC Driver Manager] Data source name not found and there is no standard driver.
My Connection string is:
connectionString = "Driver={SQL Server Native Client 10.0}; Server=MSS2008-term\\\\SQLServer; Database=db; user ID=sa; Password=ABC.123";
loginProperty.setOther(connectionString);
conn = new ODBCConnection(loginProperty);
What is missing in the connection string?
Try using a raw string assignment (so no \ magic):
connectionString = #"Driver={SQL Server Native Client 10.0}; Server=MSS2008-term\SQLServer; Database=db; user ID=sa; Password=ABC.123";
Some others have problems, see ODBC connection to external data.
Maybe you can create the DSN by code, see What is the simplest, most maintainable way to create a SQL Server ODBC Data Source?
I notice you have Server and Database in your connection string where I use Data Source and Initial Catalog for some reason. You can do it like this, just changing/adding relevant parameters:
public str getConnectionString() {
System.Data.SqlClient.SqlConnectionStringBuilder dbConnectionStringBuilder;
dbConnectionStringBuilder = new System.Data.SqlClient.SqlConnectionStringBuilder();
dbConnectionStringBuilder.set_Item('Data Source', 'YourServer');
dbConnectionStringBuilder.set_Item('Initial Catalog', 'YourDatabase');
dbConnectionStringBuilder.set_Item('Integrated Security', true);
return dbConnectionStringBuilder.ToString();
}
I'm at the end of my rope on this. It should be so simple.
I just need to know what's wrong with this connection string:
dbc.open ("Driver={SQL Server}; Data Source = ServerName; Initial Catalog = InitialDB; " "User ID = Username; Password = Password;")
I get this error when running that line:
[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
I know ServerName is up and accepting connections, I know InitialDB exists, I know User ID and Password are valid for the database. What am I missing?
In notepad create file anyname.udl - let it be empty. After in explorer click it - you will get a dialog to create OLEDB connection string, select expected driver, and all connection param, ensure that "Allow saving password" = True. Press Ok.
Then again open file with notepad. Content is valid connection string
Try this...
dbc.open ("Provider=SQLOLEDB; Driver={SQL Server}; Data Source = ServerName; Initial Catalog = InitialDB; User ID = Username; Password = Password; Network Library=dbmssocn;")
As someone has already pointed out, udl is the best easiest way to create a conn string - here is a link that talks about it. https://web.archive.org/web/20210211044624/http://www.4guysfromrolla.com/webtech/070400-1.shtml
If you are using ADOdb you might want to try
"Provider=SQLNCLI10;Server=SERVER;Database=DATABASE;Uid=USERNAME;Pwd=PASSWORD"
for SQL Server 2008 Native Client or
"Provider=SQLNCLI;Server=SERVER;Database=DATABASE;Uid=USERNAME;Pwd=PASSWORD"
for SQL Server 2005 Native Client.
For ODBC, use
"Driver=SQL Server Native Client 10.0"
for SQL Server 2008 Native Client or
"Driver=SQL Native Client"
for SQL Server 2005 Native Client.
What's with the " " in the middle of the string?
Your connection string appears to be mixing ODBC and OLEDB. I would suggest visiting http://www.connectionstrings.com/ and finding the correct syntax for the desired provider.
Yours:
"Driver={SQL Server}; Data Source = ServerName; Initial Catalog = InitialDB; " "User ID = Username; Password = Password;"
ODBC:
"Driver={SQL Server};Server=ServerName;Database=InitialDB;Uid=Username;Pwd=Password;"
OLEDB:
"Provider=sqloledb;Data Source=ServerName;Initial Catalog=InitialDB;User Id=Username;Password=Password;"
Do you have visual studio?
Connect to the database server, and locate the database you want to connect to.
Right click, select properties. Your connection string to the db is right there.
Copy to wherever you want. -- Should be in web config, but you can paste it directly into code if you so desire.