Database/SQL

SQL :: 보안 관리 :: 끄적임

Dongkkase 2008. 11. 26. 20:42
반응형

sql 서버 호스팅

보안: 사용자를 제한 (sql서버 계정, 권한)


계정을 만들고, 개체에 계정을 지정하고, 얼마만큼 그 자원에 지정할 것인가?(읽기, 쓰기)


우리는 db차원에서 계정을 만들고 주어진 자원에 권한을 부여하자.

1.인증방법
사용자들이 db자원을 사용하기 위해 엑세스를 하는데 사용자계정에 따라 통제가능

1)sql계정인증방법("sa"특수계정, 모든 db에 엑세스가능)
   ("guest, dbo")
sql자체에서 사용자계정을 만듬

 

2)windows인증방법
윈도우즈 자체계정을 통해 인증하는 방법.
장점: sql서버 계정을 따로 만들지 않고 윈도우즈 인증만으로
   관리하므로 계정관리가 용이
   감사, 암호만료, 특정시스템 로그인제한등의 다양한 관리 가능.
단점: 윈도우즈 시스템끼리만 있는 환경에서만....


혼합모드: 윈도우즈 인증과 sql인증을 모두 사용하는 인증모드이다.
웹프로그램시 .... php,jsp,asp


윈도우즈 인증모드
---------------------------
로그인
윈도우즈 인증모드 이건 sql인증모드이건 sql서버에(연결)
하기위해서는 로그인 계정이 있어야...
sql서버에 입장하기 위한 계정

1. BUILTIN\ADMINISTRATORS
WINDOWS 2000서버 관리자 그룹 이로그인은 SQL서버의 모든 DB관리 업무수행가능.

2. SA
  인증 모드가 혼합모드인 경우에만 사용가능하고
  SQL의 최고 관리자 계정.
  보안상 sa는 반드시 암호설정.
3.dbo(Database Owner)
  해당 데이타 베이스에서 모든 관리 업무를 수행할수 잇는 계정으로
  데이터 베이스를 만들면 자동으로 해당 db내에 이계정이 만들어짐

로그인?  - 놀이공원입장권
사용자?  - 놀이기구 big3

4. guest
 sql 서버에 등록된 로그인은 있지만 해당 db에 사용자가
 등록되어 있지 않은 로그인은 해당 데이타 베이스에
 guest 사용자가 있으면 자동으로 guest 계정을 이용해서
 해당 db에 접속한다.(windows의 everyone)

5. 역할(Role)
역할은 권한의 집합이다.
1) 고정된 서버 역할(fixed server role) => 역할 추가 불가능.
  sql 서버 차원에서 관리작업을 수행하기 위해 미리 만들어진 역할이다.
  고정된 서버 역할에 로그인을 추가하면 해당 로그인은 고정된 서버 역할에
  주어진 권한을 이용하여 sql  서버관리를 수행할 수 있다.

  systemadministrators : sql 서버 모든역할 수행

2) 고정된 데이터베이스 역할(fixed database role) => 역할 추가 가능.
  데이터베이스 차원에서의 관리작업을 수행하기 위해 미리 만들어진 역할.
  이 역할에 사용자를 추가하면 해당 사용자는 고정된 데이터베이스 역할에 주어진 권한을 이용하여
  DB관리 작업을 수행한다.

  db_owner : 데이터베이스에서 모든 관리 권한을 갖는다. ( 제일 많이 쓰임.,)
  db_accessadmin : 사용자나 역할 등을 추가하거나 제거가능.
  db_security admin : 사용자들에게 권한을 주거나 뺏을 수 있다.
  db_backupoperator : 데이터베이스 백업 및 복원할 수 있는 권한.
  db_datawriter : 사용자 테이블을 수정할 수 있는 권한.
  db_datareader :
  public : 모든 사용자에게 적용되는 권한을 적용하기 위해 사용.


sql계정 samsung과 daewoo를 만든다.
데이터베이스 samsung과 daewoo를 만든다.
samsung 계정은 samsungDB에만 모든 권한을 주게하고,
daewoo 계정은 daewooDB에만 모든 권한을 주도록 설정.

테스팅은 쿼리분석기로 로그인하여 테스팅.
각 DB에 테이블하나씩 미리 만들어 놓고 데이터도 몇개 넣어서 준비.

====================================================================
우리는 서버호스팅 업체이다.
www.samsung.co.kr
www.daewoo.co.kr
www.lg.co.kr
세개의 웹사이트를 웹서버및 DB를 호스팅하려고 한다.
www.samsung.co.kr (DB:100)  웹공간 : 200
www.daewoo.co.kr  (DB:100)  웹공간 : 200
www.lg.co.kr      (DB:50)   웹공간 : 200
asp소스파일은 FTP로 업로드하고
DB는 내보내기로 업로드 시킴.

각 회사의 웹마스터들은 다음과 같이 코딩함.
dbconnect.asp상에서
superman = server.createobject("adodb.connection")
baguni = server.createobject("adodb.recordset")
superman.open "samsung", "samsung", "1"

웹마스터 들에게 가르쳐주어야할 정보(samsung)
DSN : samsung
ID : samsung
pass : 1

반응형