Celko - Thinking in Sets - Auxiliary, Temporal and Virtual Tables in SQL (Elsevier, 2008)

요거요거~ 무슨 내용일까~ 궁금하당.ㅋㅋ
슬슬 봐야 할듯.ㅋ

'SQL Server 2005' 카테고리의 다른 글

DSN ADD VB Script  (0) 2008.07.15
데이터베이스간 제약조건 인덱스 비교검사  (0) 2008.07.14
권한 관리^^  (0) 2008.07.08
xp_ReadErrorLog  (1) 2008.07.08
MSSQL2005 최대 가용 인스턴스 수(컴퓨터당)  (0) 2008.07.07

권한 관리^^

-- 권한 생성

-- 로그인 생성
exec sp_addlogin 'judy','1136','AdventureWorks'

-- db access 권한
use AdventureWorks
go

exec sp_grantdbaccess 'judy'
go
-- db roll 권한

exec sp_addrolemember 'db_owner','judy'
-- exec sp_addsrvrolemember '아이디','sysadmin'

-- 기본 스키마 변경
alter user judy
 WITH DEFAULT_SCHEMA = dbo;
go

---------------------------------------------------------
-- 마스터 프로시져 만들기
USE MASTER
GO

IF OBJECT_ID ('SP_PRIV') IS NOT NULL
DROP PROC SP_PRIV
GO

CREATE PROC SP_PRIV
(
@SELECT_SQL VARCHAR(8000) = ''
, @EXECUTE_SQL VARCHAR(8000) = ''
, @EXECUTE INT = 0
)

AS

DECLARE
   @CNT INT
 , @IDX INT
 , @OBJNAME VARCHAR(1000)
 , @SQL VARCHAR(8000)
 , @NOT_IN_LIST VARCHAR(8000)

SELECT @CNT = 0 , @OBJNAME ='', @SQL =''

IF OBJECT_ID ('TEMPDB..##TBLX') IS NOT NULL DROP TABLE ##TBLX

CREATE TABLE ##TBLX ( IDX INT IDENTITY(1,1), OBJNAME VARCHAR(1000))
SET @NOT_IN_LIST ='
  AND NAME NOT IN (
  ''dt_whocheckedout_u'',''dt_whocheckedout'',''dt_verstamp007'',''dt_verstamp006'',''dt_vcsenabled'',''dt_validateloginparams_u''
  ,''dt_validateloginparams'',''dt_setpropertybyid_u'',''dt_setpropertybyid'',''dt_removefromsourcecontrol'',''dt_isundersourcecontrol_u''
  ,''dt_isundersourcecontrol'',''dt_getpropertiesbyid_vcs_u'',''dt_getpropertiesbyid_vcs'',''dt_getpropertiesbyid_u'',''dt_getpropertiesbyid''
  ,''dt_getobjwithprop_u'',''dt_getobjwithprop'',''dt_generateansiname'',''dt_dropuserobjectbyid'',''dt_droppropertiesbyid''
  ,''dt_displayoaerror_u'',''dt_displayoaerror'',''dt_checkoutobject_u'',''dt_checkoutobject'',''dt_checkinobject_u'',''dt_checkinobject''
  ,''dt_adduserobject_vcs'',''dt_adduserobject'',''dt_addtosourcecontrol_u'',''dt_addtosourcecontrol'')
 '
SET @SQL = 'INSERT INTO ##TBLX ' + REPLACE(@SELECT_SQL, 'NOT_IN_LIST', @NOT_IN_LIST)

EXEC (@SQL)

SELECT @CNT = COUNT(*) FROM ##TBLX

WHILE (@CNT <> 0 )
 BEGIN
  SELECT @IDX = IDX, @OBJNAME = OBJNAME FROM ##TBLX  WHERE IDX = @CNT
  SET @EXECUTE_SQL = REPLACE(@EXECUTE_SQL , 'REPLACE_OBJNAME', @OBJNAME) 
  IF @EXECUTE = 1
   BEGIN
   EXEC (@EXECUTE_SQL)
   PRINT 'OK'
   END
  PRINT @EXECUTE_SQL
  SET @EXECUTE_SQL = REPLACE(@EXECUTE_SQL , @OBJNAME, 'REPLACE_OBJNAME') 
  SET @CNT = @CNT - 1
 END
GO

-- master db에 권한 생성 관련 프로시져 생성해 두고

-- 모든 데이터베이스 억세스 가능하게

EXEC SP_PRIV  
 @SELECT_SQL = '
 SELECT  NAME
 FROM MASTER.DBO.SYSDATABASES
 WHERE NAME NOT IN (''TEMPDB'',''MASTER'',''MSDB'',''MODEL'')
 ORDER BY NAME
 '
 , @EXECUTE_SQL =  'exec REPLACE_OBJNAME.dbo.sp_grantdbaccess ''user'''
 , @EXECUTE = 1


-- db_owner 권한 주기

EXEC SP_PRIV  
 @SELECT_SQL = '
 SELECT  NAME
 FROM MASTER.DBO.SYSDATABASES
 WHERE NAME NOT IN (''TEMPDB'',''MASTER'',''MSDB'',''MODEL'')
 ORDER BY NAME
 '
 , @EXECUTE_SQL =  'exec REPLACE_OBJNAME.dbo.sp_addrolemember ''db_owner'', ''user'''
 , @EXECUTE = 1



 

xp_ReadErrorLog

xp_ReadErrorLog

----------------------------------------------------------------------------
위의 프로시져를 호출하면, 마지막 에러 로그 파일을 읽어들일 수 있다.

Using xp_ReadErrorLog in SQL Server 2005

http://www.sqlteam.com/article/using-xp_readerrorlog-in-sql-server-2005

Using xp_ReadErrorLog in SQL Server 2005
By Guest Authors on 12 May 2008 | 4 Comments | Tags: Administration

[출처] Using xp_ReadErrorLog in SQL Server 2005 (sqlmvp) |작성자 왕눈봄이

SQL2005 에러 메세지 중

This instance of SQL Server has been using a process ID of 344 since 2008-06-12 오전 10:34:43 (local) 2008-06-12 오전 1:34:43 (UTC). This is an informational message only; no user action is required.

==> 해석 : SQL Server 인스턴스가 프로세스 ID 344로 (6월 12일 10시 34분 ) 사용중...
요구된 사용자 액션이 아니다. 아하.. 근데, 왜 주기적으로 메세지 날리냐고.. 알 수가 없구나~
저 에러 로그 없애구 싶당 ㅜ.ㅜ 캬호~~