none
SQL SERVER 접속문제, 저장 프로시저 문제 RRS feed

  • 질문

  • 안녕하세요 

    SQL SERVER 2008 Std. SP3 를 사용하고 있는데요 최근 문제점이 2개 발생했습니다.

    문제점 1

    로그인 할 때 windows 인증 방식으로 로그인이 되지 않습니다.

    서버 인증 모드를 보면 SQL server 및 Windows 인증 모드로 설정이 되어있는데 sa 로만 로그인이 됩니다.

    windows 인증 방식으로 로그인 하려면 어떻게 해야 하나요 ?

    문제점 2

    dbo.DBAChecks로 시작하는 프로시저와 dbo.SQLIO 로 시작하는 프로시저를

    SQL Server 에이전트에 작업으로 등록하여 일주일에 한 번씩 error check 메일을 받고 있는데요

    메일은 오는데 위의 프로시저를 등록한 작업에서 오류가 납니다. 오류 메세지는  

    다음 사용자로 실행되었습니다: MXCRM02\Administrator. 어셈블리 ID 65536을(를) 로드하는 동안 
    Microsoft .NET Framework에서 오류가 발생했습니다. 서버의 리소스가 부족하거나 어셈블리가 
    PERMISSION_SET = EXTERNAL_ACCESS 또는 UNSAFE로 트러스트되지 않은 것 같습니다. 
    쿼리를 다시 실행하거나 설명서에서 어셈블리 트러스트 문제를 해결하는 방법을 참조하십시오. 
    이 오류에 대한 자세한 내용은 다음을 참조하십시오: System.IO.FileLoadException: 
    파일이나 어셈블리 'sqlserverio, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' 
    또는 여기에 종속되어 있는 파일이나 어셈블리 중 하나를 로드할 수 없습니다. 
    보안 관련 오류가 발생했습니다. (예외가 발생한 HRESULT: 0x8013150A) 
    System.IO.FileLoadException: 위치: System.Reflection.Assembly._nLoad(AssemblyName fileName, String codeBase, 
    Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound,
    Boolean forIntrospection) 위치: System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Evidence assemblySecurity,StackCrawlMark& stackMark, Boolean forIntrospection) 위치: System.Reflection.Assembly.
    InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)   위치: System.Reflection.Assembly.Load(String assemblyString) [SQLSTATE 42000] (오류 10314). 단계가 실패했습니다.


    제가 그 프로시저를 삭제하고 다시 설치도 해보고 메일 프로파일도 삭제했다가 재생성해보고

    또 오류메세지에 "서버의 리소스가 부족하거나 어셈블리가 PERMISSION_SET=EXTERNAL_ACCESS 또는

    UNSAFE 로 트러스트되지 않은 것 같습니다."  라는 메세지가 있어서   select * from sys.assemblies 를 질의했는데

    permission_set_desc 컬럼은 UNSAFE_ACCESS으로 설정 되어 있습니다.  

    이 문제들을 해결할 수 있도록 도와주세요. 

    감사합니다.


    2014년 3월 19일 수요일 오전 12:28

모든 응답

  • 질문1.

    SQL 서버 접속 후 해당 서버 마우스 우 클릭 후 [속성] – 서버 속성에서 [보안] 선택하셔서 Windows 인증 모드 선택해주셔야합니다.

    [참고자료]

    서버 인증 모드 변경

    질문2.

    이 문제는  데이터베이스를 만드는 데 사용 하는 로그인 에서 SQL Server 2005의 인스턴스에서 없기 때문에 발생하는 문제가 아닌지 아래 참고 자료 확인 부탁드립니다.

    [참고자료]

    기존 CLR 개체를 실행 하거나 external_access 또는 안전 하지 않은 권한 연결 또는 다른 서버에서 복원 된 데이터베이스에 설정 된 어셈블리 생성 하려고 할 때 오류 메시지가 나타날 수 있습니다.

    제시해 드린 답변이 도움이 되었기를 바랍니다.
     
    답변이 문제 해결에 도움이 되었다면 답변으로 채택을 부탁드립니다.
    하지만 문제 해결이 되지 않아서 정확한 답변을 원하는 경우에는 문제의 정보를 더 자세하게 답변으로 제공해주시기 바랍니다.


    2014년 3월 19일 수요일 오전 1:56
    중재자
  • 질문 1 답변에서 window 인증 모드를 선택하면 sa 계정으로는 로그인이 가능한가요 ??

    2014년 3월 19일 수요일 오전 2:15
  • 1. 혼합 모드이던 Windows  모드 이던 로그인에 해당 계정이 추가되어 있어야 합니다. 설치하면서 지금 사용자를 추가하지 않았거나 현재 SSMS 를 구동시키는 계정이 로그인에 추가되어 있지 않으면 인증되지 않습니다.sa로 된다고 하시니 로그인에 가서 계정이 있는지 확인을 해보십시오. 없으면 추가시키고 테스트해보십시오.

    2. 해당 프로시저가 SQL CLR 인것 같습니다, 권한이 문제 없다면 Administrator 로 로그인하여 쿼리 창에서 프로시저를 실행해보십시오. 동일한 오류가 발생할 것 같습니다. 오류 메시지에 보면 관련 어셈블리가 로드되지 않아서 문제이므로 메일이나 작업하고는 별 상관없는 문제일수 있습니다. 닷넷에서 먼저 디버깅을 해서라도 제대로 구동되게 하시고 작업에 등록해서 최종 테스트를 해야 할것 같습니다.


    Hong-ju

    2014년 3월 19일 수요일 오전 2:17
  • 1. 로그인 계정이 있습니다. 그리고 로그인 속성을 보면 데이터베이스 엔진 연결 권한 "허용", 로그인 "사용" 

    이렇게 되어있는데 왜 안될까요,,

    2. administrator 로 로그인 해서 실행시키라는게 sa 로 로그인해서 해보라는 것인지요 ??

    • 편집됨 sungjae.kim 2014년 3월 19일 수요일 오전 4:00
    2014년 3월 19일 수요일 오전 3:59
  • Windows 모드이던 혼합모드이던 현재 Windows 계정이 추가되어 있다면 연결이 가능합니다.

    말씀하신 로그인 계정이라는 것이 지금 로그온한 Windows 계정인가요?


    Hong-ju

    2014년 3월 19일 수요일 오전 8:03
  • windows 계정이 추가가 되어 있는데 연결이 되지 않네요 ㅠㅠ

    지금 로그인은 sa 계정으로 한 것 입니다.

    한 가지 말씀 안 드린 게 있는데 원래는 이게 windows 인증방식으로 접속을 잘 하다가

    저번에 DB 가 한 번 깨진 후 복구한 뒤 부터 접속이 안되네요,,,

    • 편집됨 sungjae.kim 2014년 3월 19일 수요일 오전 8:39
    2014년 3월 19일 수요일 오전 8:37
  • 저장 프로시져의 문제는

    sp_configure 'clr enabled', 1
    GO
    RECONFIGURE
    GO

    ALTER DATABASE DB이름 SET TRUSTWORTHY ON;

    이렇게 하니까 해결되었습니다.

    • 답변으로 제안됨 HONGJU JUNGMVP 2014년 3월 20일 목요일 오전 7:59
    2014년 3월 20일 목요일 오전 4:43
  • 윈도우 인증의 경우 로그인 계정이 컴퓨터 도메인 이름과도 동일한지 확인 부탁 드립니다.

    2014년 4월 21일 월요일 오전 12:34