SQL Server 2008 - Вход в систему перестал работать. Вход в систему от недоверяемого домена и не может использоваться с аутентификацией Windows

После дня дальнейших испытаний я взломал его. Любой в будущем, ищущий решение для реализации Drive API Download с Flask, не стесняйтесь использовать мой код в качестве шаблона.

from __future__ import print_function
from flask import Flask, render_template, jsonify, request
import sys, requests, mimetypes
import pickle
import io
import os.path
from googleapiclient.discovery import build
from googleapiclient.http import MediaIoBaseDownload, MediaFileUpload
from google_auth_oauthlib.flow import InstalledAppFlow
from google.auth.transport.requests import Request

@app.route('/drive_download')
def drive_download():


    #CREDENTIALS
    try:

        SCOPES = ['https://www.googleapis.com/auth/drive']
        ##this might need to be swapped out to work with google picker authentication
        creds = None
        if os.path.exists('token.pickle'):
            with open('token.pickle', 'rb') as token:
                creds = pickle.load(token)
        # If there are no (valid) credentials available, let the user log in.
        if not creds or not creds.valid:
            if creds and creds.expired and creds.refresh_token:
                creds.refresh(Request())
            else:
                flow = InstalledAppFlow.from_client_secrets_file('client_secret.json', SCOPES) #Client_secret.json is what I called my credentials.json
                creds = flow.run_local_server()
        # Save the credentials for the next run
            with open('token.pickle', 'wb') as token:
                pickle.dump(creds, token)




        #DOWNLOAD FILE (I'm downloading a json file)

        #Get file_id from AJAX call (this uses Picker to return the id of a file)  
        file_id = request.args.get("fileID")

        drive_service = build('drive', 'v3', credentials=creds)

        requests = drive_service.files().get_media(fileId = file_id)
        fh = io.BytesIO()
        downloader = MediaIoBaseDownload(fh, requests)
        done = False
        while done is False:
            status, done = downloader.next_chunk()
            print("Download %d%%." % int(status.progress() * 100), file=sys.stderr)
            fh.seek(0)
            json = fh.read()
            jsonRead = json.decode('utf-8') #decode from bytes into string

        return jsonify(jsonRead) #Return file contents back to AJAX call

    except Exception as e:
        return(str(e))
15
задан Tom Hunter 2 June 2012 в 13:55
поделиться

5 ответов

У меня возникла эта проблема, потому что машина, на которой запущено приложение, не является доверенным для делегирования в домене через активный каталог. Если это приложение .net, работающее под идентификатором пула приложений DOMAIN_application.environment, например ... удостоверение не может выполнять вызовы SQL, если машина не является доверенной.

6
ответ дан 1 December 2019 в 04:10
поделиться

Только что попробовал:

H:> "C: \ Program Files \ Microsoft SQL Server \ 90 \ Tools \ Binn \ sqlcmd.exe" -S ". \ SQL2008" 1>

, и это работает ... (У меня есть каталог Microsoft SQL Server \ 100 \ Tools \ Binn на моем пути).

Все еще не уверен, почему версия SQLCMD для SQL Server 2008 не работает ..

2
ответ дан 1 December 2019 в 04:10
поделиться

Ваша ошибка буквально говорит о том, что "вы пытаетесь использовать аутентификацию Windows, но ваш логин не из доверенного домена". Что странно, потому что вы подключаетесь к локальной машине.

Возможно, вы вошли в Windows, используя локальную учетную запись, а не учетную запись домена? Убедитесь, что вы входите в систему с учетной записью домена, которая также является участником SQL Server в вашем экземпляре SQL2008.

1
ответ дан 1 December 2019 в 04:10
поделиться

Вы не передаете какие-либо учетные данные sqlcmd.exe

Таким образом, он пытается аутентифицировать вас с использованием учетных данных для входа в Windows, но у вас не должно быть настроек SQL Server для принятия этих учетных данных ...

Когда вы устанавливали его, вам нужно было указать пароль администратора сервера (для учетной записи sa )

Попробуйте ...

sqlcmd.exe -U sa -P YOUR_PASSWORD -S ".\SQL2008"

для справки, подробнее здесь ...

5
ответ дан 1 December 2019 в 04:10
поделиться

Указываете ли вы имя пользователя и пароль для входа в систему? Какова именно ваша полная командная строка?

Если вы работаете на собственном компьютере, вы можете указать имя пользователя и пароль или использовать параметр -E для входа в систему с учетными данными Windows (если они разрешены на вашем сервере SQL). установка).

Марк

0
ответ дан 1 December 2019 в 04:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: