Tedious: SQL 2014์— ๋Œ€ํ•œ Windows ์ธ์ฆ ๋ฌธ์ œ

์— ๋งŒ๋“  2015๋…„ 02์›” 13์ผ  ยท  28์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: tediousjs/tedious

์ง€๋ฃจํ•˜๊ณ  ์ƒˆ๋กœ์šด SQL Server 2014-

์ง€๋ฃจํ•œ ํŒจํ‚ค์ง€ ๋ฒ„์ „: 1.9.0
๋…ธ๋“œ ๋ฒ„์ „ 12

// ๊ตฌ์„ฑ ์„ค์ •
๋ณ€์ˆ˜ ๊ตฌ์„ฑ = {
์‚ฌ์šฉ์ž ์ด๋ฆ„: "์‚ฌ์šฉ์ž",
๋น„๋ฐ€๋ฒˆํ˜ธ: "๋งˆ์ดํŒจ์Šค",
์„œ๋ฒ„: "MyServer",
๋„๋ฉ”์ธ: "MyDomian",
์˜ต์…˜: {
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค: "myDb"
},
๋””๋ฒ„๊ทธ: {
ํŒจํ‚ท: ์ฐธ,
๋ฐ์ดํ„ฐ: ์‚ฌ์‹ค,
ํŽ˜์ด๋กœ๋“œ: ์‚ฌ์‹ค,
ํ† ํฐ: ์‚ฌ์‹ค,
๋กœ๊ทธ: ์‚ฌ์‹ค
}
};

1433 ํฌํŠธ์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Œ์„ ํ™•์ธํ–ˆ์œผ๋ฉฐ ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด ๋กœ์ปฌ์—์„œ ์‹คํ–‰๋˜๋Š” SQL ์„œ๋ฒ„์ž…๋‹ˆ๋‹ค.

์Šคํƒ ์ถ”์ :
D:\Development\Node\node-sql\index.js:25
์˜ค๋ฅ˜๋ฅผ ๋˜์ง€๋‹ค;
^^
์—ฐ๊ฒฐ ์˜ค๋ฅ˜: ๋กœ๊ทธ์ธ์— ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค.
๋กœ๊ทธ์ธ์€ ์‹ ๋ขฐํ•  ์ˆ˜ ์—†๋Š” ๋„๋ฉ”์ธ์—์„œ ์™”์œผ๋ฉฐ ๋‹ค์Œ๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
์œˆ๋„์šฐ ์ธ์ฆ.
ํŒŒ์„œ์—์„œ.
(D:\Development\Node\node-sql\node_modules\tedious\lib\connection.js:447:37)
Parser.emit์—์„œ (events.js:107:17)
Parser.nextToken์—์„œ
(D:\Development\Node\node-sql\node_modules\tedious\lib\token\token-stream-parser.js:91:18)
Parser.addBuffer์—์„œ
(D:\Development\Node\node-sql\node_modules\tedious\lib\token\token-stream-parser.js:68:17)
Connection.sendDataToTokenStreamParser์—์„œ
(D:\Development\Node\node-sql\node_modules\tedious\lib\connection.js:879:35)
Connection.STATE.SENT_NTLM_RESPONSE.events.data์—์„œ
(D:\Development\Node\node-sql\node_modules\tedious\lib\connection.js:226:23)
Connection.dispatchEvent์—์„œ
(D:\Development\Node\node-sql\node_modules\tedious\lib\connection.js:742:59)
๋ฉ”์‹œ์ง€IO์—์„œ.
(D:\Development\Node\node-sql\node_modules\tedious\lib\connection.js:670:22)
MessageIO.emit์—์„œ (events.js:107:17)
MessageIO.eventData์—์„œ
(D:\Development\Node\node-sql\node_modules\tedious\lib\message-io.js:56:12)

์˜ฌ๋ฐ”๋ฅธ ๋ฐฉํ–ฅ์œผ๋กœ์˜ ๋ชจ๋“  ํ‘ธ์‹œ๋Š” ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

feature-request

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

@arthurschreiber @arobson ์„ธ์ƒ์— ๋“œ๋””์–ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค!!! ์ ์‹œ์— ์ง€์›ํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!!! ์ œ ์ตœ์ข… ๊ตฌ์„ฑ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

var config = {
    "userName": "user.name",
    "password": "password",
    "server": "servername",
    "domain": "DOMAIN_NAME_CAPITALIZED_AND_NOT_FQDM",
    "options": {
        "encrypt": false
    }
};

๊ฐ€์ƒ ๋จธ์‹ ์—์„œ SQL Server 2008 R2๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์Šคํฌ๋ฆฝํŠธ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ํ˜ธ์ŠคํŒ…ํ•˜๋Š” ๋™์ผํ•œ ์„œ๋ฒ„์— ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์„ ๋ฌธ์„œ ์–ด๋”˜๊ฐ€์— ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋ชจ๋“  28 ๋Œ“๊ธ€

๋‚ด๊ฐ€ ๋งํ•  ์ˆ˜ ์žˆ๋Š” ํ•œ, ๋‚ด๊ฐ€ PRํ•œ ์ˆ˜์ • ์‚ฌํ•ญ์€ ์•„์ง ๋ฆด๋ฆฌ์Šค๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๋ณด๊ณ  ์žˆ๋Š” ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋Š” ํŠน์ • ๋ณด์•ˆ ์ œํ•œ์ด ์žˆ๋Š” AD์˜ SQL ์„œ๋ฒ„์— ์—ฐ๊ฒฐํ•˜๋ ค๊ณ  ์‹œ๋„ํ•œ ๋‚ด์šฉ๊ณผ ์ผ์น˜ํ•ฉ๋‹ˆ๋‹ค. NTLM ์ง€์›์„ ์ถ”๊ฐ€ํ•˜๋Š” ์ฒซ ๋ฒˆ์งธ ๋‹จ๊ณ„์—์„œ๋Š” ์ด๋ฅผ ์„ค๋ช…ํ•˜์ง€ ์•Š์•˜์ง€๋งŒ ์ƒˆ๋กœ ๋ณ‘ํ•ฉ๋œ ๋™์ž‘์€ ์„ค๋ช…ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋งˆ์Šคํ„ฐ ๋ธŒ๋žœ์น˜์—์„œ ์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์„ค์น˜ํ•˜๋Š” NPM์„ ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๊นŒ?

๊ทธ๋ž˜์„œ npm์ด ์‹ค์ œ๋กœ lib ํด๋”๋ฅผ ์ œ์™ธํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— master ๋ธŒ๋žœ์น˜์—์„œ ์ตœ์‹  ๋ฒ„์ „์„ ๊ฐ€์ ธ์™€ ๋กœ์ปฌ๋กœ ์ปดํŒŒ์ผํ–ˆ์ง€๋งŒ ์—ฌ์ „ํžˆ ๊ธฐ์จ์€ ์—†์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์„ npm์— ์žˆ๋Š” ์ปคํ”ผ 1.7๊ณผ ์•ฝ๊ฐ„ ๋‹ค๋ฅด๊ฒŒ ์ปดํŒŒ์ผํ•œ ์ปคํ”ผ 1.9๋กœ ์ปดํŒŒ์ผํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ์ด๊ฒƒ์„ ์กฐ๊ธˆ ๊ณ„์†ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค - ๋‹ค๋ฅธ ์•„์ด๋””์–ด๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

Azure์—์„œ SQL Auth๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์—ˆ์ง€๋งŒ ์—ฌ์ „ํžˆ Windows Auth์—์„œ ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. - npm์— ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์—†๋Š” ํ˜„์žฌ ์†Œ์Šค๋กœ ์‹œ๋„ํ–ˆ์ง€๋งŒ ์—ฌ์ „ํžˆ ์ž‘๋™ํ•˜์ง€ ์•Š์•˜์ง€๋งŒ ์›์ธ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ปคํ”ผ ์Šคํฌ๋ฆฝํŠธ ์ž‘์„ฑ ๊ฒฝํ—˜์ด ๋ถ€์กฑํ•˜์—ฌ -

์ปคํ”ผ ๋ฒ„์ „ 1.9 ์‚ฌ์šฉ - ์†Œ์Šค์— ๋Œ€ํ•ด ๋‹ค์Œ์„ ์‹คํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.
์ปคํ”ผ --copile --output lib src ๊ทธ๋Ÿฐ ๋‹ค์Œ ์ปดํŒŒ์ผ๋œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ node_modules/tediousํ•˜์ง€๋งŒ ์—ฌ์ „ํžˆ ์ด๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

1.10.0 ๋ฆด๋ฆฌ์Šค๋ฅผ ์‚ฌ์šฉํ•ด ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์ง€๋ฃจํ•œ ์ตœ์‹  ๋ฒ„์ „์—์„œ ๋™์ผํ•œ ๋ฌธ์ œ๋ฅผ ๊ฒช๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์›Œํฌ์Šคํ…Œ์ด์…˜์˜ ์ด๋ฆ„์„ ์ œ๊ณตํ–ˆ์ง€๋งŒ ์—ฌ์ „ํžˆ "๋กœ๊ทธ์ธ์€ ์‹ ๋ขฐํ•  ์ˆ˜ ์—†๋Š” ๋„๋ฉ”์ธ์—์„œ ์™”์œผ๋ฉฐ Windows ์ธ์ฆ๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค."๋ผ๋Š” ๋™์ผํ•œ ๋ฉ”์‹œ์ง€๊ฐ€ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

๋„๋ฉ”์ธ์˜ ์ผ๋ถ€๊ฐ€ ์•„๋‹Œ ์ปดํ“จํ„ฐ์—์„œ Windows ๋„๋ฉ”์ธ ์‚ฌ์šฉ์ž๋ฅผ ์ธ์ฆํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๋„๋ฉ”์ธ ์„ค์ •๊ณผ ๊ด€๋ จํ•˜์—ฌ ๋ˆ„๋ฝ๋œ ๊ฒƒ์ด ์žˆ์Šต๋‹ˆ๊นŒ? Windows 2012 R2 Server์˜ Ubuntu 14.04 ์ธ์Šคํ„ด์Šค์—์„œ SQL Server 2014๋กœ ๋„๋ฉ”์ธ ์‚ฌ์šฉ์ž๋ฅผ ์ธ์ฆํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

@arobson ๋‹ค๋ฅธ ์˜๊ฒฌ์—์„œ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์œผ๋ฉฐ PR์ด ๋ณ‘ํ•ฉ๋œ ํ›„ ํ”„๋กœ๋•์…˜์—์„œ ์„ฑ๊ณต์ ์œผ๋กœ ์ธ์ฆํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ๋งํ–ˆ์Šต๋‹ˆ๋‹ค. ์ง€๋ฃจํ•œ ๊ฒƒ ์™ธ์— ํ•ด์•ผ ํ•  ์ผ์ด ์žˆ์—ˆ๋‚˜์š”?

์ง€๋ฃจํ•œ ์ตœ์‹  ๋ฆด๋ฆฌ์Šค์—์„œ ์ด ๋ฌธ์ œ๊ฐ€ ๊ณ„์† ๋ฐœ์ƒํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?

@arthurschreiber ๋ฐฉ๊ธˆ ์‹œ๋„ํ–ˆ์ง€๋งŒ ์—ฌ์ „ํžˆ "๋กœ๊ทธ์ธ์€ ์‹ ๋ขฐํ•  ์ˆ˜ ์—†๋Š” ๋„๋ฉ”์ธ์—์„œ ์™”์œผ๋ฉฐ Windows ์ธ์ฆ๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค."๋ผ๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ์—๋Ÿฌ ๋ฉ”์‹œ์ง€.

@arobson ์— ํ•ด๊ฒฐ์ฑ…์ด ์žˆ๋Š” ๊ฒƒ ๊ฐ™์•˜์ง€๋งŒ ์–ด๋””์—์„œ๋„ ์ฐพ์„ ์ˆ˜ ์—†์—ˆ์Šต๋‹ˆ๋‹ค.

๋„๋ฉ”์ธ ์ž๊ฒฉ ์ฆ๋ช…์„ ์‚ฌ์šฉํ•˜์—ฌ SQL 2014 ์ธ์Šคํ„ด์Šค์— ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ์˜ต์…˜์— ๋Œ€ํ•œ ๋„์›€์„ ์ฃผ์‹œ๋ฉด ๋Œ€๋‹จํžˆ ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ €๋Š” SQL ์‚ฌ์šฉ์ž๋กœ ๋กœ๊ทธ์ธํ•  ์ˆ˜ ์žˆ์ง€๋งŒ Windows ์ธ์ฆ์œผ๋กœ๋Š” ๋กœ๊ทธ์ธํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋ถˆํ–‰ํžˆ๋„ ์ œ db ํŒ€์€ ์˜๊ตฌ SQL ์‚ฌ์šฉ์ž๋ฅผ ํ—ˆ์šฉํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ Windows ์ธ์ฆ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ๋‚ด ๊ตฌ์„ฑ ์˜ต์…˜์ž…๋‹ˆ๋‹ค.

๋ณ€์ˆ˜ ๊ตฌ์„ฑ = {
์„œ๋ฒ„: 'SERVERNAME',
์‚ฌ์šฉ์ž ์ด๋ฆ„: ์‚ฌ์šฉ์ž',
๋น„๋ฐ€๋ฒˆํ˜ธ: '๋น„๋ฐ€๋ฒˆํ˜ธ',
๋„๋ฉ”์ธ: 'FQDN.DOMAIN.COM'
,์˜ต์…˜: {
๋””๋ฒ„๊ทธ: {
ํŒจํ‚ท: ์ฐธ,
๋ฐ์ดํ„ฐ: ์‚ฌ์‹ค,
ํŽ˜์ด๋กœ๋“œ: ์‚ฌ์‹ค,
ํ† ํฐ: ๊ฑฐ์ง“,
๋กœ๊ทธ: ์‚ฌ์‹ค
},
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค: 'DB_NAME'
}
};

์ด๊ฒƒ์€ ๋‚ด๊ฐ€ ์–ป๋Š” ์˜ค๋ฅ˜์ž…๋‹ˆ๋‹ค.

{ [์—ฐ๊ฒฐ ์˜ค๋ฅ˜: ๋กœ๊ทธ์ธ์— ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค. ๋กœ๊ทธ์ธ์€ ์‹ ๋ขฐํ•  ์ˆ˜ ์—†๋Š” ๋„๋ฉ”์ธ์—์„œ ์™”์œผ๋ฉฐ Windows ์ธ์ฆ๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.]
์ด๋ฆ„: '์—ฐ๊ฒฐ ์˜ค๋ฅ˜',
๋ฉ”์‹œ์ง€: '๋กœ๊ทธ์ธ์— ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค. ๋กœ๊ทธ์ธ์€ ์‹ ๋ขฐํ•  ์ˆ˜ ์—†๋Š” ๋„๋ฉ”์ธ์—์„œ ์™”์œผ๋ฉฐ Windows ์ธ์ฆ๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.',
์ฝ”๋“œ: 'ELOGIN' }
{ [RequestError: ์š”์ฒญ์€ SentNTLMResponse ์ƒํƒœ๊ฐ€ ์•„๋‹Œ LoggedIn ์ƒํƒœ์—์„œ๋งŒ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.]
์ด๋ฆ„: '์š”์ฒญ ์˜ค๋ฅ˜',
๋ฉ”์‹œ์ง€: 'SentNTLMResponse ์ƒํƒœ๊ฐ€ ์•„๋‹Œ LoggedIn ์ƒํƒœ์—์„œ๋งŒ ์š”์ฒญ์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.',
์ฝ”๋“œ: 'EINVALIDSTATE' }
{ [์—ฐ๊ฒฐ ์˜ค๋ฅ˜: ๋กœ๊ทธ์ธ์— ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค. ๋กœ๊ทธ์ธ์€ ์‹ ๋ขฐํ•  ์ˆ˜ ์—†๋Š” ๋„๋ฉ”์ธ์—์„œ ์™”์œผ๋ฉฐ Windows ์ธ์ฆ๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.]
์ด๋ฆ„: '์—ฐ๊ฒฐ ์˜ค๋ฅ˜',
๋ฉ”์‹œ์ง€: '๋กœ๊ทธ์ธ์— ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค. ๋กœ๊ทธ์ธ์€ ์‹ ๋ขฐํ•  ์ˆ˜ ์—†๋Š” ๋„๋ฉ”์ธ์—์„œ ์™”์œผ๋ฉฐ Windows ์ธ์ฆ๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.',
์ฝ”๋“œ: 'ELOGIN' }
{ [RequestError: ์š”์ฒญ์€ SentNTLMResponse ์ƒํƒœ๊ฐ€ ์•„๋‹Œ LoggedIn ์ƒํƒœ์—์„œ๋งŒ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.]
์ด๋ฆ„: '์š”์ฒญ ์˜ค๋ฅ˜',
๋ฉ”์‹œ์ง€: 'SentNTLMResponse ์ƒํƒœ๊ฐ€ ์•„๋‹Œ LoggedIn ์ƒํƒœ์—์„œ๋งŒ ์š”์ฒญ์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.',
์ฝ”๋“œ: 'EINVALIDSTATE' }

๋‚ด ๊ตฌ์„ฑ์— ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

์•„๋‹ˆ์š”, ๊ตฌ์„ฑ์— ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‚ด ์ปดํ“จํ„ฐ์— SQL Server 2014๋ฅผ ์„ค์น˜ํ•˜๊ณ  ์ด ๋ฌธ์ œ์˜ ์›์ธ์„ ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ธ์ฆ ์ฒด๊ณ„๊ฐ€ ๋ณ€๊ฒฝ๋˜์—ˆ์„ ์ˆ˜ ์žˆ์œผ๋ฉฐ ์•„์ง ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ๋ฌด์—‡์„ ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์•Œ์•„๋ณผ ๊ฒŒ.

@jgornick @stefanTHD - ์—ฌ๊ธฐ์— ์ œ๊ฐ€ ์šฐ๋ฆฌ ํ™˜๊ฒฝ์—์„œ ๋ฐœ๊ฒฌํ•œ ๋ช‡ ๊ฐ€์ง€ ๋‹จ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. NTLM์€ ๋œ ์•ˆ์ „ํ•œ NTLM ๊ธฐ๋Šฅ์„ ๋ฐฉ์ง€ํ•˜๋Š” ๋งค์šฐ ์—„๊ฒฉํ•œ ์ •์ฑ…์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  2012๋…„๊ณผ 2014๋…„์— AD ์™ธ๋ถ€์˜ Linux ์ƒ์ž์—์„œ ์šฐ๋ฆฌ๋ฅผ ์œ„ํ•ด ์ผํ•ด ์™”์Šต๋‹ˆ๋‹ค.

1 - ๋„๋ฉ”์ธ ์†์„ฑ์—์„œ FQDN์„ ์‚ฌ์šฉํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. "company.com"์ธ ๊ฒฝ์šฐ "COMPANY"๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
2 - ๋Œ€๋ฌธ์ž๋„ ์ค‘์š”ํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋ชจ๋‘ ๋Œ€๋ฌธ์ž๋กœ ๋œ ๋„๋ฉ”์ธ ์ด๋ฆ„์œผ๋กœ ์„ฑ๊ณตํ–ˆ์Šต๋‹ˆ๋‹ค.
3 - ์ •๊ทœํ™”๋œ ์‚ฌ์šฉ์ž ์ด๋ฆ„(์˜ˆ: "[email protected]")์„ _์‚ฌ์šฉํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค_ "user.name"

์ฐธ๊ณ ๋กœ

NTLM ์„ค๋ช…์„œ๋Š” ์˜ค๋ž˜๋˜์—ˆ์œผ๋ฉฐ Microsoft์—์„œ ์ œ๊ณตํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ์ฐพ์€ ๋ฌธ์„œ๊ฐ€ ๊ทธ ์ค‘ ์ผ๋ถ€๊ฐ€ ๋ฌด์—‡์„ ์œ„ํ•œ ๊ฒƒ์ธ์ง€ ์„ค๋ช…ํ•˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ํŠน์ • ๋ฐ”์ด๋„ˆ๋ฆฌ ํ”Œ๋ž˜๊ทธ์— ๋Œ€ํ•ด ๋งŽ์€ ์กฐ์‚ฌ๋ฅผ ํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ AD์— ์ผ๋ถ€ NTLM ๊ธฐ๋Šฅ์„ ๋น„ํ™œ์„ฑํ™”ํ•˜๋Š” ์ •์ฑ…์ด ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ฒซ ๋ฒˆ์งธ PR์€ ์›Œํฌ์Šคํ…Œ์ด์…˜์˜ SQL Server์— ๋Œ€ํ•œ NTLM์—์„œ๋งŒ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ ๋‹จ๊ณ„

์œ„์˜ 3๊ฐ€์ง€ ํŒ์ด ํšจ๊ณผ๊ฐ€ ์—†์„ ๊ฒฝ์šฐ Even Viewer / SQL Logs๋ฅผ ํ†ตํ•ด ์‹คํŒจํ•œ ๋กœ๊ทธ์ธ ํ•ญ๋ชฉ์„ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค๋ฉด ํฐ ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. "์‹ ๋ขฐํ•  ์ˆ˜ ์—†๋Š” ๋„๋ฉ”์ธ"์€ ์‹ค์ œ๋กœ ๊ณต๊ฒฉ์ž๊ฐ€ ์š”์ฒญ์ด ๊ฑฐ๋ถ€๋œ ์ด์œ ๋ฅผ ์•Œ๊ธฐ ์–ด๋ ต๊ฒŒ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด MSFT๊ฐ€ ์ œ๊ณตํ•˜๋Š” ์ผ๋ฐ˜ ์˜ค๋ฅ˜์ž…๋‹ˆ๋‹ค. ํ•ด๋‹น ์˜ค๋ฅ˜์— ๋Œ€ํ•ด Google์—์„œ ๊ฒ€์ƒ‰ํ•˜๊ณ  ํ•ด๋‹น ์˜ค๋ฅ˜๊ฐ€ ์˜คํ•ด์˜ ์†Œ์ง€๊ฐ€ ์žˆ๋‹ค๊ณ  ๋ถˆํ‰ํ•˜๋Š” NTLM์„ ์ง€์›ํ•˜๋ ค๋Š” ๋‹ค๋ฅธ OSS ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ฐพ์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜์—ˆ์œผ๋ฉด ํ•ฉ๋‹ˆ๋‹ค. Tedious๋Š” ํ›Œ๋ฅญํ•˜๊ณ  @arthurschreiber ์˜ ์ตœ๊ทผ ๊ธฐ์—ฌ ๋•๋ถ„์— ๋”์šฑ ํ–ฅ์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

NTLM ์ธ์ฆ์€ Microsoft์˜ MS-NLMP ์„ค๋ช…์„œ์— ์„ค๋ช…๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์‹œ๊ฐ„์„ ๋‚ด์„œ ์ฝ์–ด๋ณด๊ณ  ์ง€๊ธˆ๊นŒ์ง€ ๊ตฌํ˜„๋œ ๊ฒƒ๊ณผ ์ง€๋ฃจํ•˜๊ฒŒ ๋น„๊ตํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

@arthurschreiber @arobson ์„ธ์ƒ์— ๋“œ๋””์–ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค!!! ์ ์‹œ์— ์ง€์›ํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!!! ์ œ ์ตœ์ข… ๊ตฌ์„ฑ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

var config = {
    "userName": "user.name",
    "password": "password",
    "server": "servername",
    "domain": "DOMAIN_NAME_CAPITALIZED_AND_NOT_FQDM",
    "options": {
        "encrypt": false
    }
};

๊ฐ€์ƒ ๋จธ์‹ ์—์„œ SQL Server 2008 R2๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์Šคํฌ๋ฆฝํŠธ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ํ˜ธ์ŠคํŒ…ํ•˜๋Š” ๋™์ผํ•œ ์„œ๋ฒ„์— ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์„ ๋ฌธ์„œ ์–ด๋”˜๊ฐ€์— ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋ฉ‹์žˆ๋Š”! NTLM ์ธ์ฆ์ด ์•”ํ˜ธํ™”์™€ ํ•จ๊ป˜ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์‚ฌ์‹ค์€ ์ฝ”๋“œ์˜ ๋ฒ„๊ทธ์ด๋ฉฐ ๊ณง ์ˆ˜์ • ์‚ฌํ•ญ์„ ์ œ๊ณตํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค(์‹œ๊ฐ„์„ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค๋ฉด).

์‹ค์ œ๋กœ ๋„๋ฉ”์ธ์„ ๋Œ€๋ฌธ์ž๋กœ ์‚ฌ์šฉํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋ฉ๋‹ˆ๋‹ค!

https://github.com/pekim/tedious/pull/367 ์•”ํ˜ธํ™”์™€ ํ•จ๊ป˜ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” NTLM ์ธ์ฆ์— ๋Œ€ํ•œ ์ˆ˜์ • ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค.

์ด ํ† ๋ก ์€ Linux์—์„œ Windows ์ธ์ฆ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ๋งํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๊นŒ? ์˜ˆ๋ฅผ ๋“ค์–ด ๋ ˆ๋“œํ–‡?

@pisees ์˜ˆ, ์ˆ˜์ • ์‚ฌํ•ญ์ด ํฌํ•จ๋œ ์•”ํ˜ธํ™”์™€ ํ•จ๊ป˜ Windows Auth๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Fedora 22์—์„œ SQL ์„œ๋ฒ„๋กœ ์—ฐ๊ฒฐํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

@NamTThai ์™€ ๋˜‘๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๊ณ  ์ด๊ฒƒ์„ ์ฝ๊ณ  ์„ค๋ช…๋œ ๋Œ€๋กœ ๋„๋ฉ”์ธ์„ ๋ณ€๊ฒฝํ•œ ํ›„ ์ง€๊ธˆ ์ž‘๋™ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. (๋ชจ๋‘ ๋Œ€๋ฌธ์ž๋กœ ๋„๋ฉ”์ธ์˜ ์ฒซ ๋ถ€๋ถ„๋งŒ, ์  ๋’ค ๋ถ€๋ถ„์€ ์ƒ๋žต)

์ €๋Š” Microsoft์™€ ํ•จ๊ป˜ ํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ์ง€๋ฃจํ•œ ์ž‘์—…์— ๋„์›€์ด ๋˜๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค.
์ด ๋ฌธ์ œ์™€ ๊ด€๋ จํ•˜์—ฌ ์•„์ง ํ•ด๊ฒฐ๋˜์ง€ ์•Š์€ ์‚ฌํ•ญ์ด ์žˆ์Šต๋‹ˆ๊นŒ? ์•„๋‹ˆ๋ฉด ๋ชจ๋‘ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๊นŒ?

@tvrprasad ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์ž‘๋™ํ•˜๋Š” ์ด์œ ๋ฅผ ์šฐ๋ฆฌ ๋ชจ๋‘๊ฐ€ ์ดํ•ดํ•˜๊ณ  ์žˆ๋Š”์ง€ ํ™•์‹ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. :)

@benzou 8/15์˜ ์ด ์Šค๋ ˆ๋“œ์—์„œ @arobson ์ด ์„ค๋ช…ํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๊นŒ?
์ด ๋ฌธ์ œ๊ฐ€ ๋‹ซํžˆ์ง€ ๋ชปํ•˜๊ฒŒ ๋ง‰๋Š” ๊ฒƒ์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ๋‚ด๊ฐ€ ์ด๊ฒƒ์„ ๋‹ซ๋Š” ๊ฒƒ์„ ๋„์šธ ์ˆ˜ ์žˆ์„์ง€๋„ ๋ชจ๋ฆ…๋‹ˆ๋‹ค... ์–ด๋–ป๊ฒŒ๋“  :)

@tvrprasad ์ด ๋ฌธ์ œ์— ๋Œ€ํ•ด ๋” ๋‚˜์€ ๋ฌธ์„œ๊ฐ€ ํ•„์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ gh-pages ๋ถ„๊ธฐ์— ๋ฌธ์„œ๊ฐ€ ์ €์žฅ๋˜์–ด ์žˆ์ง€๋งŒ ์ฝ”๋“œ ๊ธฐ๋ฐ˜ ์™ธ๋ถ€์—์„œ ์œ ์ง€ ๊ด€๋ฆฌ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋งค์šฐ ์‰ฝ๊ฒŒ ๊ตฌ์‹์ด ๋˜๊ณ  ์œ ์ง€ ๊ด€๋ฆฌ๊ฐ€ ์–ด๋ ต์Šต๋‹ˆ๋‹ค. ๐Ÿ˜ž

@tvrprasad - ๋‚ด๊ฐ€ NTLM ์ง€์›์„ ์ถ”๊ฐ€ํ•œ ์ดํ›„๋กœ ์ง€๋ฃจํ•˜๊ณ  ์šฐ๋ฆฌ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์— ๋ณด๊ณ ๋œ ๋ฌธ์ œ๋Š” ๋„๋ฉ”์ธ์ด ์†Œ๋ฌธ์ž ๋ฐ/๋˜๋Š” FQDN์œผ๋กœ ์ง€์ •๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ผ๊ด€๋˜๊ฒŒ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด์— ๋Œ€ํ•œ ํ•œ ๊ฐ€์ง€ ์†”๋ฃจ์…˜์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ PR์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  1. ๋„๋ฉ”์ธ์„ ๋Œ€๋ฌธ์ž๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค(์ฒ˜์Œ๋ถ€ํ„ฐ ๊ทธ๋ ‡๊ฒŒ ํ–ˆ์–ด์•ผ ํ•จ)
  2. . ์—์„œ ๋„๋ฉ”์ธ์„ ๋ถ„ํ• ํ•˜๊ณ  ์ฒซ ๋ฒˆ์งธ ์„ธ๊ทธ๋จผํŠธ๋งŒ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ €๋Š” ํ™•์‹คํžˆ NTLM ์ „๋ฌธ๊ฐ€๋Š” ์•„๋‹ˆ์ง€๋งŒ ์šฐ๋ฆฌ๋Š” MSSQL๊ณผ Node์˜ ํŒฌ์ด๊ณ  ์ด๊ฒƒ์ด ์ •๋ง๋กœ ํ•„์š”ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์šด์˜ ํŒ€์˜ ๋„์›€์„ ๋ฐ›์•„ ์—ฌ๋Ÿฌ SQL Server์— ๋Œ€ํ•ด ํ…Œ์ŠคํŠธํ•˜๊ธฐ ์œ„ํ•ด NTLM ๋ฌธ์„œ ๋ฐ ๊ธฐํƒ€ ๊ตฌํ˜„์— ๋›ฐ์–ด๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๊ตฌํ˜„์— ๋Œ€ํ•ด ๋น„๊ต์  ํ™•์‹ ํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฑฐ๊ธฐ์— ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ๋ถ„์„ ๋ฐ ๊ฐœ์„  ์‚ฌํ•ญ์€ ํ›Œ๋ฅญํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ๋”ฐ๋ž๋˜ ๋ฌธ์„œ๊ฐ€ 2007๋…„๋ถ€ํ„ฐ์˜€๊ธฐ ๋•Œ๋ฌธ์— ๋‚ด๊ฐ€ ๋ฌด์—‡์„ ๋†“์ณค๋Š”์ง€ ๋งํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค ๐Ÿ˜„

NTLM ๋น„ํŠธ์— ๋Œ€ํ•ด ๋‹ต๋ณ€ํ•  ์ˆ˜ ์žˆ๋Š” ํŠน์ • ์งˆ๋ฌธ์ด ์žˆ์œผ๋ฉด ์•Œ๋ ค์ฃผ์‹ญ์‹œ์˜ค.

@arobson - FDQN์ด ์ €์—๊ฒŒ ํšจ๊ณผ๊ฐ€ ์žˆ๋Š” ๊ฒƒ ๊ฐ™์ง€๋งŒ ์—ฌ์ „ํžˆ ๋Œ€๋ฌธ์ž์ž…๋‹ˆ๋‹ค. ์‰ฌ์šด ์ถ”์ ์„ ์œ„ํ•ด ๋Œ€๋ฌธ์ž๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ณ„๋„์˜ ๋ฌธ์ œ๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค - https://github.com/tediousjs/tedious/issues/414. ์ด์— ๋Œ€ํ•œ PR์„ ์ž‘์„ฑํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์†Œ๋ฌธ์ž๊ฐ€ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ์ด์œ ๋ฅผ ์•Œ์•„๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

@arthurschreiber - ์ด ์ฃผ์ œ์— ๋Œ€ํ•ด ์ตœ์†Œํ•œ ํ•˜๋‚˜์˜ PR์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๊ฒŒ ๋˜๋ฉด ๋ฌธ์„œ๋ฅผ ์ตœ์‹  ์ƒํƒœ๋กœ ์œ ์ง€ํ•˜๋Š” ๋ฐ ๋„์›€์„ ์ฃผ๋„๋ก ํ•˜์—ฌ ๋” ์ž˜ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๋ฌธ์„œ๊ฐ€ ๋ถ€์กฑํ•œ ๋‹ค๋ฅธ ์˜์—ญ์ด ์žˆ์œผ๋ฉด ์•Œ๋ ค์ฃผ์‹ญ์‹œ์˜ค. ์ œ๊ฐ€ ๋„์™€๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

์ธ์ฆ๊ณผ ๊ด€๋ จ๋œ ๋ช‡ ๊ฐ€์ง€ ๋‹ค๋ฅธ ๋ฌธ์ œ๋ฅผ ์—ด์—ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๊ฒƒ์— ๋Œ€ํ•œ ์ƒ๊ฐ์„ ๊ณ ๋ง™๊ฒŒ ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.
https://github.com/tediousjs/tedious/issues/415
https://github.com/tediousjs/tedious/issues/416

์—ฌ๋Ÿฌ๋ถ„ - Windows ํ†ตํ•ฉ ์ธ์ฆ ๊ตฌํ˜„์„ ์œ„ํ•œ PR์ด ์žˆ์Šต๋‹ˆ๋‹ค( https://github.com/tediousjs/tedious/pull/497). ์ด๊ฒƒ์€ ์‚ฌ์šฉ์ž ์ด๋ฆ„์ด๋‚˜ ์•”ํ˜ธ๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์œผ๋ฉฐ ์‚ฌ์šฉ์ž์˜ ๋กœ๊ทธ์ธ ์ž๊ฒฉ ์ฆ๋ช…์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์‚ฌ์šฉํ•ด๋ณด์‹œ๊ณ  ํ”ผ๋“œ๋ฐฑ ์ฃผ์‹œ๋ฉด ์ •๋ง ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ์ปค๋ฎค๋‹ˆํ‹ฐ์™€ ํ˜‘๋ ฅํ•˜๊ธฐ๋ฅผ ๊ณ ๋Œ€ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๋ˆ„๊ตฌ๋“ ์ง€ ๋‚˜๋ฅผ ๋„์šธ ์ˆ˜ ์žˆ๋‹ค๋ฉด MS SQL Server ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค 12์—์„œ mssql ๋…ธ๋“œ 4.1์„ ์‚ฌ์šฉํ•˜์—ฌ ์—ฐ๊ฒฐ์„ ์‹œ๋„ํ–ˆ์ง€๋งŒ ์ด๋ฏธ ๋งŽ์€ ๊ฒƒ์„ ์‹œ๋„ํ–ˆ์ง€๋งŒ ์—ฐ๊ฒฐ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋‚ด ์—ฐ๊ฒฐ์€ ๋‹ค์Œ์„ ์ค€์ˆ˜ํ–ˆ์Šต๋‹ˆ๋‹ค.

x

๋‚˜๋Š” ์‹œ๋„ํ•œ๋‹ค:

const stringConnect = '์„œ๋ฒ„ = ADMIN-CCE \ ๊ด€๋ฆฌ์ž: 1433; ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค = GRD; ์‚ฌ์šฉ์ž ID = admin-cce \ admin; '
DATABASE.connect(๋ฌธ์ž์—ด ์—ฐ๊ฒฐ)
.then (์—ฐ๊ฒฐ => {
global.conn = conn;
console.log('GRD์— ์—ฐ๊ฒฐ๋จ');
})
.catch(err => console.error( connection error mssql $ {stringConnect} - $ {err} ));

module.exports = ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค;

* ๋ฐ˜ํ™˜ ์˜ค๋ฅ˜ **
mssql ์—ฐ๊ฒฐ ์˜ค๋ฅ˜ ์„œ๋ฒ„ = ADMIN-CCE \ ๊ด€๋ฆฌ์ž: 1433; ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค = GRD; ์‚ฌ์šฉ์ž ID = admin-cce \ admin; - ConnectionError: ๊ด€๋ฆฌ์ž์šฉ ํฌํŠธ: 1433์ด ADMIN-CCE์—์„œ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์ด๋ฏธ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์„ ์‹œ๋„ํ–ˆ์ง€๋งŒ ์„ฑ๊ณตํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค! ๋ฐ”๋ผ๋ณด๋‹ค:

๋ณ€์ˆ˜ ๊ตฌ์„ฑ = {
์„œ๋ฒ„: "ADMIN-CCE \ MSSQLSERVER",
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค: "GRD",
ํฌํŠธ: 1433,
์‚ฌ์šฉ์ž: 'admin-cce \ admin',
๋””๋ฒ„๊ทธ: ์‚ฌ์‹ค,
์˜ต์…˜: {
์•”ํ˜ธํ™”: ๊ฑฐ์ง“,
์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์—ฐ๊ฒฐ: ์ฐธ
}
};

DATABASE.connect(๊ตฌ์„ฑ, ๊ธฐ๋Šฅ(์˜ค๋ฅ˜) {
๋งŒ์•ฝ (์˜ค๋ฅ˜)
{
console.log(์˜ค๋ฅ˜)
}
๋˜ ๋‹ค๋ฅธ
console.log('์—ฐ๊ฒฐ๋จ.....')
});

module.exports = ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค;

* ๋ฐ˜ํ™˜ ์˜ค๋ฅ˜ *
๋ฉ”์„ธ์ง€:
'ADMIN-CCE์— ์—ฐ๊ฒฐํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค: ์ •์˜๋˜์ง€ ์•Š์Œ - ์—ฐ๊ฒฐํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค(์‹œํ€€์Šค)',
์ฝ”๋“œ: 'ESOCKET'},
์ด๋ฆ„: '์—ฐ๊ฒฐ ์˜ค๋ฅ˜'}

@allexon๋‹˜ , tedious๋Š” ์•„์ง Windows ํ†ตํ•ฉ ์ธ์ฆ์„ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ https://github.com/tediousjs/tedious/issues/660์— ์žˆ์Šต๋‹ˆ๋‹ค.

์ง€๋ฃจํ•จ์€ ์•„์ง SQL ์„œ๋ฒ„ Windows ์ธ์ฆ์„ ์ง€์›ํ•ฉ๋‹ˆ๊นŒ?

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰