Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
sqlmapproject
GitHub Repository: sqlmapproject/sqlmap
Path: blob/master/plugins/dbms/snowflake/connector.py
3556 views
1
#!/usr/bin/env python
2
3
"""
4
Copyright (c) 2006-2026 sqlmap developers (https://sqlmap.org)
5
See the file 'LICENSE' for copying permission
6
"""
7
8
try:
9
import snowflake.connector
10
except:
11
pass
12
13
import logging
14
15
from lib.core.common import getSafeExString
16
from lib.core.convert import getText
17
from lib.core.data import conf
18
from lib.core.data import logger
19
from lib.core.exception import SqlmapConnectionException
20
from plugins.generic.connector import Connector as GenericConnector
21
22
class Connector(GenericConnector):
23
"""
24
Homepage: https://www.snowflake.com/
25
User guide: https://docs.snowflake.com/en/developer-guide/python-connector/python-connector
26
API: https://docs.snowflake.com/en/developer-guide/python-connector/python-connector-api
27
"""
28
29
def __init__(self):
30
GenericConnector.__init__(self)
31
32
def connect(self):
33
self.initConnection()
34
35
try:
36
self.connector = snowflake.connector.connect(
37
user=self.user,
38
password=self.password,
39
account=self.account,
40
warehouse=self.warehouse,
41
database=self.db,
42
schema=self.schema
43
)
44
cursor = self.connector.cursor()
45
cursor.execute("SELECT CURRENT_VERSION()")
46
cursor.close()
47
48
except Exception as ex:
49
raise SqlmapConnectionException(getSafeExString(ex))
50
51
self.initCursor()
52
self.printConnected()
53
54
def fetchall(self):
55
try:
56
return self.cursor.fetchall()
57
except Exception as ex:
58
logger.log(logging.WARNING if conf.dbmsHandler else logging.DEBUG, "(remote) '%s'" % getSafeExString(ex))
59
return None
60
61
def execute(self, query):
62
try:
63
self.cursor.execute(getText(query))
64
except Exception as ex:
65
logger.log(logging.WARNING if conf.dbmsHandler else logging.DEBUG, "(remote) '%s'" % getSafeExString(ex))
66
return None
67
68
def select(self, query):
69
self.execute(query)
70
return self.fetchall()
71
72