วิธีตรวจสอบว่ามีการติดตั้งโปรแกรมฐานข้อมูลใดบนเซิร์ฟเวอร์ DataBase ที่ฉันมี acces ให้เรียกใช้แบบสอบถาม


11

ฉันต้องการตรวจสอบประเภทของ sql ที่กำลังทำงานอยู่บนเซิร์ฟเวอร์ Datasase ที่ฉันสามารถเข้าถึงได้ ฉันมีสิทธิ์เข้าถึงเว็บอินเตอร์เฟสและรายการตารางเท่านั้น

ผ่านอินเทอร์เฟซฉันสามารถเรียกใช้แบบสอบถามบนตารางที่มีอยู่ในรายการ

ฉันจะรับข้อมูลเพิ่มเติมเกี่ยวกับเซิร์ฟเวอร์และรุ่นที่เซิร์ฟเวอร์ใช้งานอยู่ได้อย่างไร ฉันไม่รู้เกี่ยวกับ IP หรือ PORT ที่เซิร์ฟเวอร์กำลังทำงาน

ฉันต้องการทราบว่าเซิร์ฟเวอร์นั้นเป็น MySQL, Mircosoft SQL Server, Oracle SQL, Postgre SQL หรือเซิร์ฟเวอร์ sql อื่น ๆ

เว็บไซต์ที่ผมพูดถึงเป็นหนึ่งในนี้: w3schools.com SQL แก้ไข

แก้ไข 2: สำหรับบางคำสั่ง select sqlite_version () ใช้งานได้สำหรับฉันมันไม่ทำงาน นี่คือภาพหน้าจอของการตอบสนอง

ป้อนคำอธิบายรูปภาพที่นี่

แก้ไข 3: บน Chromium Browser คำสั่งทำงานได้อย่างถูกต้อง อย่างไรก็ตามใน Firefox Browser คำสั่งไม่ทำงาน

ฉันยังพูดถึงว่าฉันใช้ Linux อยู่

คุณคิดว่าอะไรเป็นสาเหตุที่ทำให้ Firefox และ Chrome ฉันได้รับผลลัพธ์ที่แตกต่างกัน


คุณสามารถเรียกใช้แบบสอบถามได้หรือไม่?
เดวิดדודו Markovitz

@DuduMarkovitz ใช่ฉันสามารถเรียกใช้การสอบถามได้
yoyo_fun

ความจริงที่ว่าคำสั่งนี้ใช้งานได้สำหรับบางคนและไม่ใช่สำหรับคนอื่น ๆ ดูเหมือนว่าจะแนะนำว่าสภาพแวดล้อมเฉพาะ @joanolo อาจเป็นสิ่งที่ถูกต้องเมื่อเขากล่าวว่าข้อความค้นหาเหล่านี้ทำงานในเบราว์เซอร์ คนต่างใช้เบราว์เซอร์ที่แตกต่างกันบางคนอาจติดตั้งส่วนขยายเพิ่มเติม
Andriy M

2
"ฟังก์ชั่นไม่ได้กำหนดในการแสดงออก" เป็นข้อความแสดงข้อผิดพลาดของ Access ดังนั้นดูเหมือนว่าฝั่งเซิร์ฟเวอร์ที่พวกเขากำลังใช้ Jet
Martin Smith

@MartinSmith Jet คืออะไรในบริบทนี้ ฉันจะอ่านเพิ่มเติมเกี่ยวกับเรื่องนี้ได้ที่ไหน
yoyo_fun

คำตอบ:


15

ฉันคิดว่าเว็บอินเตอร์เฟสของคุณให้คุณใช้คำสั่ง SQL ได้ ถ้าเป็นเช่นนั้นคุณสามารถใช้:

SELECT version();

PostgreSQL

หากคุณอยู่ในฐานข้อมูลPostgreSQLคุณจะได้รับคำตอบที่คล้ายกัน

PostgreSQL 9.6.1 on x86_64-apple-darwin14.5.0, compiled by Apple LLVM version 7.0.0 (clang-700.1.76), 64-bit

MySQL

หากคุณอยู่ในฐานข้อมูลMySQLคำตอบจะเป็นดังนี้

5.7.12-log

คำพยากรณ์

หากคุณอยู่ในฐานข้อมูลOracleคุณจะได้รับข้อความแสดงข้อผิดพลาด:

ORA-00923: FROM keyword not found where expected

(ORA-xxxx บอกคุณว่าคุณอยู่บน Oracle) หากต้องการทราบว่ารุ่นใดให้ลอง:

SELECT banner as "oracle version" from v$version

คุณจะได้รับคำตอบเช่น:

Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production
PL/SQL Release 11.2.0.2.0 - Production
CORE    11.2.0.2.0  Production
TNS for 64-bit Windows: Version 11.2.0.2.0 - Production
NLSRTL Version 11.2.0.2.0 - Production

เซิร์ฟเวอร์ Microsoft SQL

หากคุณอยู่บนMS SQL Serverการตอบสนองจะเป็นข้อผิดพลาดและมีลักษณะดังนี้:

'version' is not a recognized built-in function name.

ในกรณีนั้นคุณสามารถลอง:

SELECT @@version ;

และคุณจะได้รับสิ่งที่ดูเหมือน:

Microsoft SQL Server 2016 (SP1) (KB3182545) - 13.0.4001.0 (X64)   
    Oct 28 2016 18:17:30   
    Copyright (c) Microsoft Corporation  
    Enterprise Edition (64-bit) on Windows Server 2012 R2 Standard 6.3 <X64> (Build 9600: ) (Hypervisor) 

SQLite

หากคุณอยู่บนฐานข้อมูลSQLiteคุณจะได้รับข้อความแสดงข้อผิดพลาดเมื่อลองSELECT version():

 could not prepare statement (1 no such function: version)

ในกรณีนั้นคุณสามารถลอง:

 SELECT sqlite_version()

และการตอบสนองจะมีลักษณะดังนี้:

3.14.0

ขอบคุณสำหรับคำตอบ แต่น่าเสียดายที่ไม่มีอะไรทำงานบนเว็บไซต์นี้w3schools
yoyo_fun

ลองใช้ครั้งสุดท้าย: SELECT sqlite_version()และคุณจะได้คำตอบ
joanolo

1
ดูเหมือนว่ารุ่นที่พวกเขาได้จริงอย่างสมบูรณ์ทำงานบนเบราว์เซอร์ของคุณ ดูgithub.com/kripken/sql.js
joanolo

มีวิธีใดบ้างที่จะตรวจสอบให้แน่ใจว่าเป็นกรณีนี้ ภาษา SQL ในเบราว์เซอร์รุ่นนี้มีวิธีตรวจสอบเวอร์ชันหรือไม่หรือที่จริงแล้วเป็นโปรแกรม SQL นี้
yoyo_fun

7

เอดิเตอร์ SQL ออนไลน์นี้ใช้ฐานข้อมูล Web SQLซึ่งหมายถึง SQL ที่ฝังอยู่ในเบราว์เซอร์ ง่ายต่อการจดจำถ้าคุณดูซอร์สโค้ด JS ที่ http://www.w3schools.com/w3Database.jsและเปรียบเทียบการเรียก API กับข้อมูลจำเพาะ W3C ของ Web SQL ตัวอย่างเช่นวิธีเปิดฐานข้อมูล:

w3Database = window.openDatabase('W3SchoolsDemoDatabase', '1.0',
           'W3SchoolsDemoDatabase', 2 * 1024 * 1024);

จึงมีเซิร์ฟเวอร์ฐานข้อมูลไม่มันจริงๆเบราว์เซอร์ที่รัน SQL กับโปรแกรม SQL ที่เบราว์เซอร์ของคุณเลือกได้กับการใช้งาน (สมมติว่ามันมีความสามารถใน SQL เพื่อเริ่มต้นด้วย) ซึ่ง sqliteทำให้ความรู้สึกมาก

(แก้ไข: ไม่จริงอย่างเคร่งครัดเพราะตามคำตอบของ Martin Smithรหัสการส่ง JS จะกลับไปที่เอ็นจิ้น MS-Jet ฝั่งเซิร์ฟเวอร์เมื่อเบราว์เซอร์ไม่รองรับ Web SQL)

โปรดทราบว่า W3C ได้ตัดสินใจที่จะละทิ้งแนวคิดเบราว์เซอร์ SQL-in-the ในปี 2010 ตอนนี้มันล้าสมัยแล้ว


คุณรู้ไหมว่าทำไมพวกเขาถึงตัดสินใจครั้งนี้? มีความแตกต่างระหว่าง SQL ในเบราว์เซอร์และ SQLite หรือไม่?
yoyo_fun

@yoyo_fun: en.wikipedia.org/wiki/Web_SQL_Databaseมีพอยน์เตอร์บางส่วน หรือคุณอาจถามคำถามนี้เป็นคำถามอิสระใน dba.se
Daniel Vérité

นี่เป็นความคิดที่ดีมากแน่นอน :)
yoyo_fun

5

ตามที่ระบุไว้ในคำตอบอื่น ๆ มันขึ้นอยู่กับเบราว์เซอร์ของคุณ

หากเบราว์เซอร์ของคุณไม่มีการสนับสนุนเนทีฟสำหรับฐานข้อมูล Web SQL จะเป็นการส่งกลับไปยังเซิร์ฟเวอร์

ป้อนคำอธิบายรูปภาพที่นี่

สิ่งนี้ใช้ Jet ที่สามารถมองเห็นได้โดยการเรียกใช้

SELECT X FROM Foobar

เอ็นจินฐานข้อมูล Microsoft Jet ไม่พบตารางป้อนข้อมูลหรือแบบสอบถาม 'Foobar' ตรวจสอบให้แน่ใจว่ามีอยู่และสะกดชื่ออย่างถูกต้อง

ซึ่งหมายถึงส่วนขยายการเข้าถึงที่เป็นกรรมสิทธิ์เช่นTRANSFORMงานเมื่อเข้าถึงหน้าเว็บจาก Firefox (แต่จะล้มเหลวใน Chrome)

ป้อนคำอธิบายรูปภาพที่นี่


ขอบคุณสำหรับคำตอบโดยละเอียด คุณบอกฉันได้อย่างไรว่าคุณได้ภาพหน้าจอแรก เครื่องมือแก้ไขที่คุณใช้คืออะไร มันเป็นส่วนเสริมสำหรับเว็บเบราว์เซอร์หรือไม่?
yoyo_fun

@yoyo_fun เครื่องมือของนักพัฒนาซอฟต์แวร์ใน Firefox
Martin Smith

3

คำตอบนี้ได้รับก่อนที่ OP จะเพิ่มการอ้างอิงถึง w3schools.com


หากคุณสามารถเรียกใช้แบบสอบถามเริ่มต้นด้วยสิ่งนี้:

select version();        -- PostgreSQL  e.g.: PostgreSQL 9.6beta2, compiled by Visual C++ build 1800, 64-bit                                                                                                                                            

select version();        -- MySQL       e.g.: 5.7.11-log                                                                                                                                                                                                

select @@version;        -- SQL Server  e.g.: Microsoft SQL Server 2016 (RTM) - 13.0.1601.5 (X64)   Apr 29 2016 23:23:58   Copyright (c) Microsoft Corporation  Express Edition (64-bit) on Windows 7 Enterprise 6.1 <X64> (Build 7601: Service Pack 1)         

select * from v$version; -- Oracle      e.g.: Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production                      

select sqlite_version(); -- Sqlite:     e.g.: 3.15.1     

thansk แต่น่าเสียดายที่คำสั่งไม่ทำงานบนเว็บไซต์ w3schools และอื่น ๆ ที่อยู่คือwww.w3schools.com/sql/trysql.asp?filename=trysql_select_all
yoyo_fun

1
โปรดลองใช้ Sqlite
David דודו Markovitz

sqlite ตรวจสอบคำตอบที่อัปเดตแล้ว
David דודו Markovitz

ทำเครื่องหมายผลลัพธ์ของการรันคำสั่ง "select sqlite_version ()" คือ "ฟังก์ชันที่ไม่ได้กำหนด 'sqlite_version' ในนิพจน์"
yoyo_fun

1
(คำตอบนั้นขึ้นอยู่กับเบราว์เซอร์)
joanolo

2

สำหรับกรณีเฉพาะของโปรแกรม SQL ที่ใช้โดยเพจที่W3Schools :

เบราว์เซอร์ Safari, Chrome และ Opera

หากคุณใช้เบราว์เซอร์ Safari (ฉันทดสอบใน Mac OS X 10.12) หน้ากำลังใช้ SQLite ซึ่งดูเหมือนว่าจะสร้างไว้ในเบราว์เซอร์ของตัวเอง เมื่อคุณกดปุ่ม "เรียกใช้ SQL" จะไม่ใช้ทรัพยากรภายนอกใด ๆ วิศวกรรมย้อนกลับเพิ่มเติมแสดงให้เห็นว่าหน้ากำลังเริ่มต้นฐานข้อมูลโดยใช้รหัส JavaScript ต่อไปนี้:

function w3WebSQLInit() {
    var w3DBObj = this;
    w3Database = window.openDatabase('W3SchoolsDemoDatabase', '1.0', 'W3SchoolsDemoDatabase', 2 * 1024 * 1024);
   ...
}

window.openDatabaseหมายความว่ารหัสจะใช้ฐานข้อมูล SQL บนเว็บ สิ่งนี้ถูกกำหนดโดย W3C เมื่อไม่กี่ปีที่ผ่านมาและได้รับการฝึกฝนโดย Opera, Safari และ Chrome (AFAIK) แต่ไม่ใช่โดย FireFox (หรือ Explorer) ดูเหมือนว่าเบราว์เซอร์ทั้งสามนี้ได้ติดตั้ง "ฐานข้อมูล SQL ของเว็บ" โดยฝัง SQLite รุ่นต่างๆไว้ภายในตัว

ณ จุดนี้หน้า W3C อ้างสิทธิ์:

"ระวังข้อมูลจำเพาะนี้ไม่ได้อยู่ในการบำรุงรักษาที่ใช้งานได้อีกต่อไปและคณะทำงานเว็บแอปพลิเคชันไม่ได้ตั้งใจจะบำรุงรักษาต่อไป"

ฉันทดสอบเบราว์เซอร์Chrome (รุ่น 56.0.2924.87 บน Windows 10) และดูเหมือนว่าจะใช้ SQLite 3.10.2 Opera (เวอร์ชั่น 12.15 บน Windows 10) ใช้ SQLite 3.7.9

Opera มีความชัดเจนเพียงพอในเรื่อง "เกี่ยวกับ":

ป้อนคำอธิบายรูปภาพที่นี่

และคู่มือการเขียนโปรแกรมแอปพลิเคชั่นออฟไลน์และการจัดเก็บข้อมูลฝั่งไคลเอ็นต์ของ Safariยังระบุด้วยว่า

เริ่มต้นใน Safari 3.1 และ iOS 2.0 Safari สนับสนุนคลาสฐานข้อมูล HTML5 JavaScript คลาสฐานข้อมูล JavaScript ตาม SQLite จัดเตรียมฐานข้อมูลเชิงสัมพันธ์ที่มีไว้สำหรับการจัดเก็บเนื้อหาในเครื่องซึ่งมีขนาดใหญ่เกินกว่าที่จะจัดเก็บในคุกกี้ได้สะดวก การลบโดยไม่ตั้งใจเมื่อผู้ใช้ล้างคุกกี้ของเขาหรือเธอ)

ฉันไม่ได้ดู Chrome ... แต่ฉันเดาได้ชัดเจน

FireFox, Edge และอินเทอร์เน็ตสำรวจเบราว์เซอร์

ถ้าคุณใช้เบราว์เซอร์ FireFox (ฉันทดสอบบน Mac OS X 10.12); หน้า W3School เดียวกันทำงานในลักษณะที่แตกต่างกันอย่างสิ้นเชิง มันไม่ได้ดำเนินการค้นหาบนเบราว์เซอร์แต่ส่งคำขอไปยังพวกเขาเซิร์ฟเวอร์ ทางฝั่งเซิร์ฟเวอร์ฉันคิดว่าใช้ฐานข้อมูลMS Accessเหมือนจริง วิธีหนึ่งในการตรวจสอบโดยการตรวจสอบ information_schema(มาตรฐาน)

หากคุณออกแบบสอบถามต่อไปนี้ (ซึ่งในฐานข้อมูลที่เป็นไปตามมาตรฐานจะให้รายการของตารางที่ผู้ใช้สามารถเข้าถึงได้):

SELECT * FROM information_schema.tables;

คุณได้รับการตอบกลับข้อผิดพลาดดังต่อไปนี้:

Could not find file 'C:\Windows\SysWOW64\inetsrv\information_schema.mdb'.

หากซอฟต์แวร์กำลังมองหาไฟล์. MDB นั่นหมายความว่าพวกเขากำลังใช้Microsoft Jet Database Engine (หรือสิ่งที่เทียบเท่า) บนฝั่งเซิร์ฟเวอร์และพวกเขากำลังใช้ไฟล์ฟอร์แมต. .MDBซึ่งสอดคล้องกับรุ่น Access ถึงและ รวมถึง 2003 (Access 2007 และรุ่นที่ใหม่กว่าจะใช้ไฟล์ฟอร์แมท. ACCDB เป็นค่าเริ่มต้น)

Microsoft Internet Explorer 11ทำงานในลักษณะเดียวกัน (บน Windows 10) และEdgeก็เช่นกัน(บน Windows 10)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.