2017-03-02 16 views
0

SQL Server Express가 이미 설치된 랩톱이 있습니다. 서버 이름은 SRH \ SQLEXPRESS이고 버전은 10.0.2531.0입니다. 운영 체제는 Windows 7입니다.osql을 사용하여 sa 암호를 변경할 수없는 이유는 무엇입니까?

Windows 인증을 통해 연결할 수 있습니다. 하지만 sa에도 불구하고 연결하려고합니다. 이후로 나는 sa의 암호를 모르기 때문에 그것을 재설정하고 싶습니다. 나는 osql을 사용하여 그것을 바꾸기로 결정했다.

  1. 내가 관리자 모드에서 명령 프롬프트 (cmd를) 열 :

    내가 sa의 암호를 변경하는 데 걸린 단계입니다.
  2. osql -S SRH\SQLEXPRESS -E을 입력하고 Enter 키를 누릅니다.
  3. 그러면 1> 프롬프트가 표시됩니다. 그런 다음 sp_password null, 'HseWork11', 'sa'을 입력하고 Enter 키를 누릅니다.
  4. 그러면 2> 프롬프트가 표시됩니다. 그때 키를 입력 GO 키를 누릅니다에 입력,하지만이 오류 메시지가 얻을 :

메시지 15151, 수준 16, 상태 1, 서버 SRH의 \의 SQLEXPRESS, 줄 1가 로그인 'SA'를 변경하지 수를 , 존재하지 않거나 사용자가 권한이 없기 때문입니다.

험머.

sa 로그인이 있는지 확인하려면 Windows 인증을 통해 연결하고 다음 문을 실행하십시오 select * from sys.syslogins where name = 'sa'. 나는 1 행을 되찾아 로그인 sa가 존재한다.

그럼 sa 암호를 osql을 사용하여 변경할 수 없습니까? 내가 뭘 잘못하고 있니?

답변

1

sp_password 대신에 UNLOCK 옵션을 사용하여 ALTER LOGIN을 사용해 보셨습니까? osql 대신 sqlcmd을 사용합니다. 차이가 있는지 실제로 알지 못합니다. 명령 프롬프트에서

:

sqlcmd -S .\SQLEXPRESS 
>1 ALTER LOGIN sa WITH PASSWORD = ‘whateveryouwant’ UNLOCK 
>2 GO 
>3 exit 

이 분명히 다른 명령입니다, 나는 sp_password이되지 않은 경우 가끔 ALTER LOGIN이 나를 위해 일한 것을 알고있다. 나는 그것이 치료법이라고는 생각하지 않지만, 한번 살펴볼 필요가 있습니다.

사이드 참고 :이 작동하지 않습니다,하지만 당신은 여전히 ​​SQL 서버에 연결할 수 있으면

는 그것을보고이 쿼리를 실행하는 가치가있을 수도 있습니다 (당신은, 그냥 SA으로 수 있다고 말했다) 누구 SQL Server 관리자로 액세스하십시오. 어쩌면 당신은 그 역할을 부여받은 내장 계정을 가지고있을 것입니다 ...

USE Master 
GO 

SELECT 
     P.Name 
    ,P.Type_desc 
    ,P.is_disabled 
FROM sys.server_principals P 
INNER JOIN sys.syslogins L 
    ON L.SID = P.SID 
WHERE P.Name NOT LIKE '#%' 
AND L.SysAdmin = 1 
; 

이렇게하면 SQL Server와 SysAdmin 역할을 가진 Windows 사용자 모두에게 제공됩니다.

우선 편집 :

당신은 is_disabled이 쿼리를 실행 한 후 SA 계정에 대한 1로 표시되어 있다고 말했다.

다시 명령 프롬프트로 이동하여 다음 시도는 :

>1 ALTER LOGIN sa ENABLE 
>2 GO 
>3 exit 
+0

내가 말했듯이'sqlcmd'를 사용하여'ALTER LOGIN'을 시도했지만 같은 오류 메시지가 나타납니다. 그런 다음 쿼리를 실행 한 후 1 행을 반환했습니다. ** 이름 **은'sa'입니다. ** Type_desc **는 SQL_LOGIN이고 ** is_disabled **는'1'입니다. ** is_disabled **가 '1'이고 '0'이 아닌 이유는 무엇입니까? – srh

+0

내 대답이 업데이트되었습니다. 내가 추가 한 해결책을 시도해보고 그것이 효과가 있는지 알려주십시오. – 3BK

+0

로그인을 활성화 한 후에는 이전의'ALTER LOGIN' 명령을 사용하여 재 시도하여 암호를 변경할 수 있어야합니다. – 3BK

1

당신은 당신의 윈도우 로그인으로 SQL Server 인스턴스의 시스템 관리자하지 않을 수 있습니다. 시스템 관리자 권한이 있으면 sa login의 암호를 변경할 수 있어야합니다.

Wikihow

참고를 참조하십시오 : OSQL이 중단 된 기능으로, SQLCMD를 사용하십시오.

+0

내 Windows 로그인이 SQL Server의 시스템 관리자인지 확인하는 방법은 무엇입니까? – srh

+0

@srh 제안한 쿼리를 실행했고 Windows 계정이 시스템 관리자 중 하나로 표시되지 않았기 때문에 이미 그렇지 않다는 것을 알았습니다. – 3BK

+0

@ 3BK 오 알겠습니다. 그 쿼리는 그 시스템 관리자 로그인만을 보여줄'SysAdmin = 1' 필터를 가지고 있습니다. – srh