-
Notifications
You must be signed in to change notification settings - Fork 13
Expand file tree
/
Copy pathconnect-2-sqlserver.py
More file actions
81 lines (67 loc) · 2.52 KB
/
Copy pathconnect-2-sqlserver.py
File metadata and controls
81 lines (67 loc) · 2.52 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
import pyodbc
# https://code.google.com/archive/p/pyodbc/wikis/Cursor.wiki
SERVER = 'localhost'
DATABASE = 'master'
USERNAME = 'grafana'
PASSWORD = 'grafana'
APPNAME = 'connect-2sqlserver-ajay-dwivedi.py'
connectionString = f"""
DRIVER={{ODBC Driver 18 for SQL Server}};
SERVER={SERVER};
DATABASE={DATABASE};
UID={USERNAME};
PWD={PASSWORD};
APP={APPNAME};
Trusted_Connection=Yes;
TrustServerCertificate=yes;
"""
print (connectionString)
#TrustServerCertificate=True'
conn = pyodbc.connect(connectionString)
sql_get_server_info = """
DECLARE @Domain NVARCHAR(255);
begin try
EXEC master.dbo.xp_regread 'HKEY_LOCAL_MACHINE', 'SYSTEM\CurrentControlSet\services\Tcpip\Parameters', N'Domain',@Domain OUTPUT;
end try
begin catch
print 'some erorr accessing registry'
end catch
select [domain] = DEFAULT_DOMAIN(),
[domain_reg] = @Domain,
[ip] = convert(varchar,CONNECTIONPROPERTY('local_net_address')),
[@@SERVERNAME] = @@SERVERNAME,
[MachineName] = convert(varchar,serverproperty('MachineName')),
[ServerName] = convert(varchar,serverproperty('ServerName')),
[host_name] = convert(varchar,SERVERPROPERTY('ComputerNamePhysicalNetBIOS')),
[sql_version] = @@VERSION,
[service_name_str] = servicename,
[service_name] = case when @@servicename = 'MSSQLSERVER' and servicename like 'SQL Server (%)' then 'MSSQLSERVER'
when @@servicename = 'MSSQLSERVER' and servicename like 'SQL Server Agent (%)' then 'SQLSERVERAGENT'
when @@servicename <> 'MSSQLSERVER' and servicename like 'SQL Server (%)' then 'MSSQL$'+@@servicename
when @@servicename <> 'MSSQLSERVER' and servicename like 'SQL Server Agent (%)' then 'SQLAgent'+@@servicename
else 'MSSQL$'+@@servicename end,
[instance_name] = @@servicename,
service_account,
convert(varchar,SERVERPROPERTY('Edition')) AS Edition,
convert(varchar,SERVERPROPERTY('ProductVersion')) AS ProductVersion,
convert(varchar,SERVERPROPERTY('ProductLevel')) AS ProductLevel
--,instant_file_initialization_enabled
--,*
from sys.dm_server_services
where servicename like 'SQL Server (%)'
or servicename like 'SQL Server Agent (%)'
"""
cursor = conn.cursor()
cursor.execute(sql_get_server_info)
field_names = [i[0] for i in cursor.description]
#field_names = ', '.join(field_names)
print(field_names)
fetched_data = cursor.fetchall()
data = [list(rows) for rows in fetched_data] # this one
print(f"No of records => {len(fetched_data)}")
#help(fetched_data[0])
#print(type(records[0]))
#for r in records:
#print(f"{r.CustomerID}\t{r.OrderCount}\t{r.CompanyName}")
#None
conn.close()