2009. 6. 23. 23:21

SQL Server 2000 Administration 과정 : Note #1


SDS e-Campus SQL Server 2000 Administration 과정에서 중요한 부분만 노트한 것임


파일 속성에 "파일자동증가"가 선택되어져 있는가?


처음 크기가 가득차면 파일증가 속성에서 정의한 대로 데이터 파일이 증가할 것이다. 최대 파일크기를 확인한다. 기본값이 파일 무제한 증가로 되어 있음을 확인하고 파일 증가 제한을 5M로 설정한다.

데이터 파일의 최대 크기를 반드시 정한다. 그렇지 않으면 이 파일은 하드디스크를 모두 차지할 수도 있다.

그리고 충분한 크기만큼 늘어나게 한다. 그래서 데이터 파일이 조각나지 않게 하고 SQL Server 가 이런 일로 관리부하가 걸리지 않게 할 수 있다.

데이터베이스 옵션 설정하기

ANSI_PADDING
이 옵션이 ON으로 설정되면 varchar 열에 삽입된 문자 값의 후행 공백과 varbinary 열에 삽입된 이진 값의 후행 0이 잘리지 않는다.

* 중요 : ANSI_PADDING 을 항상 ON으로 설정하도록 권장. 계산된 열 또는 인덱스 된 뷰에서 인덱스를 만들거나 변경할 때 SET ANSI_PADDING 은 ON 이어야 한다.

데이터 파일 퍼뜨리기
가능한 한 많은 물리적 드라이브에 걸쳐 많은 데이터를 퍼뜨리면 여러 파일을 사용한 병렬 처리로 처리량이 증가한다. 일반적으로 물리적 디스크마다 파일 하나를 만들고 파일을 파일 그룹으로 묶으면 속도 향상을 꾀할 수 있다.

윈도우 인증
windows 보안을 그대로 상속받아 사용가능하기 때문에 더 나은 보아을 구축할 수 있고, 그룹을 하나의 계정처럼 사용 가능

SQL Server 인증
SQL 서버가 자체적으로 인증하는 방식. 비 윈도우 클라이언트나 인터넷 사용자들도 SQL 서버로 부터 직접 인증 받아 접속할 수 있다.

기본 로그인 계정
SQL 서버에는 두 개의 기본 로그인 계정이 있다.
BUILTIN\Administrators 와 sa.
 BULTIN\Administrators 는 Windows 2000 관리자로 기본 로그인 계정으로 제공된다. 이 계정에는 SQL 서버와 모든 데이터베이스에 대한 모든 권한이 있다.

 시스템관리자(sa)는 SQL Server 와 모든 데이터베이스에 대한 모든 권한이 있는 특별 로그인 계정이다.
이전 버전과의 호환성을 위해 제공되며 일반적으로 이 계정을 사용해서는 안된다. SQL 서버가 혼합 모드 인증을 사용하고 있을 때만 이 계정을 사용할 수 있다.

유저 만들기
특정 데이터베이스에 접속 하려면 유저로써의 등록이 필요하고 SQL 서버 로그인 계정을 특정 데이터베이스의 유저로 만들기 위해서는 각 데이터베이스마다 관리하는 sysusers 테이블에 등록시켜야 한다.

서버 역할
sysadmin : SQL 서버에서 모든 작업을 수행할 수 있다.
serveradmin : 서버 차원의 구성옵션을 설정하고 해당 서버를 종료할 수 있다.
setupadmin : 연결된 서버를 관리하고 프로시저를 시작할 수 있다.
securityadmin : 로그인 및 CREATE DATABASE 사용권한을 관리하고, 오류 로그를 읽고 암호를 변경할 수 있다.
processadmin : SQL 서버에서 실행중인 프로세스를 관리할 수 있다.
dbcreator : 데이터베이스를 만들고, 변경하고, 삭제할 수 있다.
diskadmin : 디스크 파일을 관리할 수 있다.
bulkadmin : BULK INSERT 문을 실행할 수 있다.

데이터베이스 역할
db_owner : 데이터베이스에서 모든 사용 권한을 갖는다.
db_accessadmin : 사용자 ID를 추가하거나 제거할 수 있다.
db_securityadmin : 모든 사용 권한, 개체 소유권, 역할 및 역할 구성원을 관리할 수 있다.
db_ddladmin : ALL DDL은 실행할 수 있지만 GRANT, REVOKE 또는 DENY 문을 실행할 수 없다.
db_backupoperator : DBCC, CHECKPOINT 및 BACKUP 문을 실행할 수 있다.
db_datareader : 데이터베이스의 모든 사용자 테이블에서 모든 데이터를 볼 수 있다.
db_datawriter : 데이터베이스의 모든 사용자 테이블에서 데이터를 수정할 수 있다.
db_denydatareader : 데이터베이스의 모든 사용자 테이블에서 데이터를 볼 수 없다.
db_denydatawriter : 데이터베이스의 모든 사용자 테이블에서 데이터를 수정할 수 없다.

뷰와 프로시저를 이용한 보안
1. 뷰를 이용한 보안
쿼리 분석기

create table 사원

(사번int, 이름varchar(8), 전화번호char(12), 연봉money, 나이int)

 

insert 사원values(1, '김사원', '700-5425', 5000000, 29)

go

create view 전화번호조회

as

select 사번, 이름, 전화번호from 사원


권한 관리

grant select on 전화번호조회to 일반사용자


2. 프로시저를 이용한 보안
쿼리 분석기

create proc 전화번호변경

(

       @사번int,

       @전화번호char(12)

)

as

update 사원

set 전화번호=@전화번호

where 사번=@사번


권한 부여

grant exec on 전화번호변경to 일반사용자