복붙노트

[SQL] SQL Server의 어떤 사용자가 만든 개체를 결정

SQL

SQL Server의 어떤 사용자가 만든 개체를 결정

지금은 우리의 개발 DB를 통해 이동하고 이전 테스트 발동 / 테이블의 일부를 정리하기 위해 노력하고있어. 그것은 SQL Server 2005 데이터베이스 개체를 만든 것을 사용자가 결정할 수 있습니까? 그렇다면, 어떻게 그 정보를 찾는 가겠어요?

편집 : 그냥 문제의 객체가 이미 존재한다는 것을 명확히하고 싶었다. 아마 감사 및 트리거를 설정하는 것은 나에게 매우 좋은하지 않을 것입니다. 나는 주로 정보를 얻을 수있는 시스템 테이블 / 뷰를 사용하는 방법을 찾고 있었다 같아요.

해결법

  1. ==============================

    1.대답은 "아니오, 당신은 아마 수 없습니다"입니다.

    대답은 "아니오, 당신은 아마 수 없습니다"입니다.

    지정된 객체를 만든 사람 말할 수 거기 물건이 있지만, 그들 뒤에 "IFS"많이 있습니다. 빠른 (반드시 완료되지) 검토 :

    는 sys.objects (따라서 sys.tables, sys.procedures, sys.views 등) 열 principal_id있다. 이 값은 다시 SQL (예) 로그인의 목록과 결합 할 수있는 데이터베이스 사용자의 목록에 관한 외래 키입니다. (이 정보의 모든 추가 시스템 뷰에서 찾을 수 있습니다.)

    그러나.

    우리 여기 설치 및 BOL의 피상적 인 검토에 빠른 검사는 "스키마 소유자는 다른"인 경우이 값은 (즉, NOT NULL)로 설정되어 있음을 나타냅니다. 우리의 개발 시스템에서 우리와는 DBO + 두 개의 다른 스키마를 가지고, 모든 NULL로 온다. 모든 사람들이이 데이터베이스 내에서 DBO 권한을 가지고 있기 때문에 이것은 아마도입니다.

    이것은 NT 인증을 사용하고 있습니다. SQL 인증은 아마 거의 동일하게 작동합니다. 또한, 모두가 고유 로그인을 사용하거나 공유 하는가? 당신이 직원 회전율 및 도메인이있는 경우 (또는 SQL) 로그인을 다시 한번 데이터가되지 않거나 불완전 할 수 있습니다, 분리되었습니다.

    당신은 이상이 데이터를 보면 (는 sys.objects SELECT * FROM),하지만 principal_id가 NULL의 경우, 당신은 운이 아마 수 있습니다.

  2. ==============================

    2.객체가 최근에 생성 된 경우 "기본 추적에 의해 기록 된 데이터베이스 내의 모든 최선을 다하고 DDL 문 실행의 역사를 제공한다"는 SQL Server Management Studio를, 내 스키마 변경 내역 보고서를 확인할 수 있습니다 :

    객체가 최근에 생성 된 경우 "기본 추적에 의해 기록 된 데이터베이스 내의 모든 최선을 다하고 DDL 문 실행의 역사를 제공한다"는 SQL Server Management Studio를, 내 스키마 변경 내역 보고서를 확인할 수 있습니다 :

    그런 다음이 객체의 문을 작성할를 검색 할 수 있습니다. 정보가 표시되는 모든 중, DDL 문을 실행 누구의 로그인 이름이있다.

  3. ==============================

    3.각 사용자가 자신의 SQL Server 로그인이있는 경우이를 시도 할 수

    각 사용자가 자신의 SQL Server 로그인이있는 경우이를 시도 할 수

    select 
        so.name, su.name, so.crdate 
    from 
        sysobjects so 
    join 
        sysusers su on so.uid = su.uid  
    order by 
        so.crdate
    
  4. ==============================

    4.당신이 작은 특정 메커니즘이 필요하면, 당신은 DLL 트리거 정보를 검색 할 수 있습니다.

    당신이 작은 특정 메커니즘이 필요하면, 당신은 DLL 트리거 정보를 검색 할 수 있습니다.

  5. from https://stackoverflow.com/questions/1255947/determine-what-user-created-objects-in-sql-server by cc-by-sa and MIT license