You can ask the Database Administrator for the environment what your SQL Server Login details are for using SQL Server Authentication.
Alternatively, you could connect to the SQL Server Instance via RDP and Windows Authentication and then create a new SQL Server Login for you to use remotely.
To confirm, you cannot use Windows authentication remotely (from outside of the domain the instance resides in) unless you are connecting from a domain with a trust relationship defined.
You have created a linked server, not a linked database, so there is no list of databases to select from. You need to either use a "four-part name" or use the OPENQUERY() function.
Four-part names describe an object on another server. Usually a four-part name would look like "servername.databasename.schemaname.tablename", but for Oracle you apparently need to leave the database name out. A query using a four-part name for Oracle might look like this:
SELECT name FROM OracleSvr..joe.titles WHERE id = 101
where "OracleSvr" is the name of the linked server.
Alternatively, here is an example of a statement that uses OPENQUERY. It should do the same thing, some people find this style easier to read.
SELECT * FROM OPENQUERY (OracleSvr, 'SELECT name FROM joe.titles WHERE id = 101')
OPENQUERY is documented here.
No matter which style of query you choose, you would connect via your Python program to the SQL Server and then run the query.
You can do this via ODBC, you don't need to specify the database name when setting up the connection, you do it at query time as described above.
Best Answer
For most applications hitting SQL Server 2008 R2, you would be fine going either way, I think.
OLEDB
support is being removed after SQL Server 2012 but until it is, you'd likely be fine either way based on your standards and your needs. That said, I'd look to future supportability and consider goingODBC
with the Native Client.I would say a more important decisions would be to consider using the Native Client for your .net apps if you aren't already.