레이블이 mssql인 게시물을 표시합니다. 모든 게시물 표시
레이블이 mssql인 게시물을 표시합니다. 모든 게시물 표시

2009년 5월 15일 금요일

[MSSQL] MSSQL2000에서 외부 접속 하는 방법

MSSQL2000에서 외부 접속 하는 방법

1. 서버 설치 시 유의사항
- Enterprise Edition 은 설치가 되지 않는다.
- Personal Edition 으로 설치를 한다.
- 인스턴스를 수동으로 생성하고..
- 인증모드 부분에서는 sql server 인증으로 비밀번호를 정하고..
 
2. 원격에서의 접속
- 로컬에서의 서비스는 문제 없다..
- 1433 포트는 외부에서 telnet 으로 붙을 수 없다..
- mssql server 2000 service pack 4 를 다운받아 설치한다.
- 다운받아서 설치하면.. 폴더가 생기고.. 배치파일(.bat) 파일을 실행시켜서 수동으로 설치
- 인스턴스를 선택해서 기존 DB 업데이트.. (master db 등은 초기화 되므로 유의..)
- 설치 완료~

윈도우 공식홈페이지 MSSQL2000 서비스팩4 다운받기

2009년 4월 8일 수요일

MSSQL2000 테이블 열 레코드 자동증가값 초기화 방법

테이블 시퀀스 필드의 경우 대부분 자동증가값을 이용을 하는데요.
어떤 경우 이부분에 있어 다시 재 초기화가 필요한 경우가 있습니다.
중간에 사라진 레코드가 너무 많아서 시퀀스값 사이가 클 경우 이겠지요..

DBCC CHECKIDENT(Table명,RESEED,초기값)

ex, DBCC CHECKIDENT(tb_board,RESEED,1)

초기값은 시퀀스값을 초기값을 기준으로해서 값이 증가합니다

초기값이 1이면 쿼리로 글 작성시 입력되는 값은 증가하면서 2로 삽입됩니다

MSSQL에서 DB 복원 후 사용자에 로그인이름이 없어 오류가 나는 문제

출처 : http://blog.naver.com/ahab01/20032654907


MSSQL2000 에서 백업 받은 DB를 다른 서버에 있는 MSSQL2000 에 복원 시켰을때

해당 DB의 사용자가 있는데 로그인 이름이 없어 로그인이 안되는 문제가 있다.

이 문제는 해당 DB를 사용하는 사용자의 GUID가 syslogins.sid 테이블에 있는 것과 다르기 때문이다.

EM에서 사용자에 가 보면 사용자 이름은 있는데 로그인 이름은 비어 있을 것이다.

이것을 해결하기 위해서는 새 서버의 로그인 계정과 복원한 DB의 사용자를 연결해야 한다.


먼저 쿼리매니저에서 연결되지 않은 계정을 확인한다.


sp_change_users_login 'Report'

go


하면 사용자는 있는데 연결되지 않은 사용자의 아이디가 나온다.

 나오는 이름을 확인하고


sp_change_users_login 'Update_one', 'username', 'username'

go


를 하면 연결 작업이 끝난다. EM에서 사용자를 보면 로그인 이름이 생겨있다.


이제 DB에 해당 사용자로 연결이 되는지 확인하면 된다.


2009년 3월 18일 수요일

ASP에서 MSSQL 연동해서 쿼리 출력하는 예제

안녕하세요? 웹프로그램에 가장 흥미와 제미 있을시기가 지금 님의 시기인듯 한데요

상세한 정보를 원하신다면 제가 끝에 남긴곳에 강좌를 보시구요

저는 실전적으로 바로 적용할수 있고 초보개발자가 빨리 이해할수있는 수준으로 글을 작성하겠습니다.

따라서 학술적이나 이론적으로는 상이함이 있을수 있습니다만...

님이 원하시는 답변의 핵심에 최대한 접근해보도록 노력하겠습니다.

소스작성 순서는

디비접속객체로 디비접속 =>디비 내용 전달 객체생성=>변수활용 쿼리작성=>디비내용전달객체에 쿼리실행에 의한 테이블내용 담기=>리스팅 뿌리기

이상이 순서입니다.

주석을 확인하시면 미약하지만...^^; 설명이 있습니다.
소스
<%
constr="Provider=SQLOLEDB;Data Source=localhost;Initial Catalog=디비명;User ID=유져아이디;Password=비밀번호;Network Library=dbmssocn"
Set db = Server.CreateObject("ADODB.Connection") 'db라는 컨넥션 object 를 생성합니다.
db.Open constr

'위내용은 constr 변수 내용으로 db라는 object로 데이터베이스에 접속한다는 뜻입니다.


Set rs = Server.CreateObject("ADODB.Recordset")

'rs라는 레코드셋 object 생성합니다. rs안에 테이블내용이 들어갑니다.
Set rs.ActiveConnection = db 'rs는 접속할것이다 db라는 객체를 활용해서

'위내용은 테이블 내용을 전달할 rs object 선언과 rs는 db object 를 활용해서 디비에 접속한다는 뜻입니다.


strSql ="select * from  table " 'strSql 이라는 변수에 실행 쿼리를 작성
rs.Open strSql 'strSql 변수의 내용(쿼리)으로 rs에 테이블 내용을 담으라는 뜻입니다.

'위내용은 strSql 의 변수 활용으로 쿼리 작성해서 rs가 그것을 활용해서 테이블 내용을 가져오는 과정입니다.


while not(rs.EOF) '루프를 돌립니다. 테이블의 끝레코드가 아니면 계속 루프가 돌아가라는 조건으로

response.write rs("필드명") &"<br>" '뿌려야할 필드를 출력

rs.MoveNext '다음레코드로 이동

wend '루프의 끝

'위내용은 rs 가 갖고 있는 필드내용을 출력하는 예제입니다. 그리고 그다음 레코드가 이동이 되는 과정도 있구요
%>

이상이 디비에 있는 내용을 출력하는 소스 예제이구요...

물론 객체를 생성했으면 close 하고 nothing 해야한다 변수선언 똑바로 안하냐?
그런 내용의 테클적인 글도 올라올수 있겠으나...

님이 원하는 질문의 핵심에 최대한 접근이 이글 작성의 목표입니다.

상세한 학습을 원하신다면 teayo 사이트의 asp 강좌를 보시면 정말 잘나와있습니다.


제글이 도움이 되셨으면 합니다. 좋은하루요 ^^

MSSQL2005의 권한 설정 설명

MSSQL2005의 변화된 권한 설정 DB/SQL 노트
자료 출처 : http://blog.naver.com/c1dong8/10019140217

MSSQL2000에서는 권한설정을 하면 SQL을 기준으로 권한을 주었다. 예를 들면 검색권한을 주고싶으면 select 권한을 주는 식으로 필요한 권한을 체크해주는 식이였다.

그래서 MSSQL2005왔을때 많이 해맸다-_-;;;;

어찌됫건 MSSQL2005와서 권한 설정의 가장큰 변화는 로그인권한과 데이터베이스 사용권한을 따로 생성해야하는 것인거 같다.

MSSQL2000때는 로그인권한을 가진 유저를 각DB에 추가시키는 방식으로 권한을 주었지만 MSSQL2005부터는 로그인권한을 가진 유저를 만든후 DB에 유저를 추가시킨다음 만든 로그인과 연결된 권한을 생성하는 방식이다.(C#으로 보자면 인스턴스를 만들어서 접근하는 것과 비슷한거 같다.) 간단하게 말하자면 로그인하는 계정과 DB를 사용하는 계정을 따로 생성해야 한다는 것이다.


로그인 계정을 만드는 것은 MSSQL2000때와 같다. 보안>로그인 에서 새 로그인을 만들어주면된다.

이제 DB로 가서 보안>사용자 새 사용자를 추가한다. 사용자이름을 추가하고 아까만든 로그인(로그인 이름)을 설정해준다.

기본 스키마는 자신보다 높은 권한을 가진 스키마를 설정해야한다. 디폴트로 dbo로 되있는데 dbo의 정보를 보면 오너 권한이 있는걸 알수있다. 사용자를 만들면 자동으로 스키마도 생성해주므로 필요하다면 다른 스키마를 선택해도 된다.

밑에보면 데이터베이스 역할 멤버 자격 이라는 칸이 있는데 이것이 예전의 권한설정부분이다.

MSSQL2000과 많이 달라진 것중하나가 권한설정 부분이다. 어디서 본것 같다했는데.....오라클할때 배운거 같다-_-;;;

권한을 설명하자면


역할 멤버

설명

db_accessadmin

Windows 로그인, Windows 그룹 및 SQL Server 로그인에 대한 액세스를 추가하거나 제거할 수 있습니다.

http://technet.microsoft.com/ko-kr/library/ms191451(SQL.90).aspx

설명으로 봐서는 로그인에 대한 계정을 추가 삭제할수 있는 권한이다.

db_backupoperator

데이터베이스를 백업할 수 있습니다.

http://technet.microsoft.com/ko-kr/library/ms189041(SQL.90).aspx

말그대로 DB를 빽업할 수 있다.

db_datareader

데이터베이스에 있는 테이블이나 뷰에 대해 SELECT 문을 실행할 수 있습니다.

http://technet.microsoft.com/ko-kr/library/ms188629(sql.90).aspx

보통 이 권한을 염두하고 프로그램을 만들었으니 변환한 DB의 사용자는 거의 이 권한으로 주었다.

db_datawriter

모든 사용자 테이블에서 데이터를 추가, 삭제 또는 변경할 수 있습니다.

http://technet.microsoft.com/ko-kr/library/ms175039(SQL.90).aspx

MSSQL2000 에서는 안써본기능이라 잘 모르겠다;;

db_ddladmin

데이터베이스에서 모든 DDL(데이터 정의 언어) 명령을 실행할 수 있습니다.

http://technet.microsoft.com/ko-kr/library/ms190667(SQL.90).aspx

데이터 정의어로 오라클에서는 테이블을 생성,삭제,변경할 수 있는 권한이었는데 여기서도 그런거 같다

db_denydatareader

데이터베이스 내에 있는 사용자 테이블의 데이터를 읽을 수 없습니다.

http://technet.microsoft.com/ko-kr/library/ms187916(SQL.90).aspx

어디에 쓰이는지 모르겠다;;

db_denydatawriter

데이터베이스 내의 사용자 테이블에 있는 데이터를 추가, 수정 또는 삭제할 수 없습니다.

http://technet.microsoft.com/ko-kr/library/ms188308(SQL.90).aspx

안써봐서 모른다;;

db_owner

데이터베이스에서 모든 구성 및 유지 관리 작업을 수행할 수 있습니다.

http://technet.microsoft.com/ko-kr/library/ms180977(SQL.90).aspx

개발할 때 이 권한을 주면 편하다 ㅡ.-;;;

db_securityadmin

역할 멤버 자격을 수정하고 사용 권한을 관리할 수 있습니다.

http://technet.microsoft.com/ko-kr/library/ms188685(SQL.90).aspx

Database Roles에서 사용자를 추가, 삭제, 객체사용권한등을 변경할 수 있다.

Public

사용자를 만들면 들어가있는 권한


어디에 쓰이는 권한인지는 모르겠다.


이렇게 역할 멤버 자격까지 주면 사용자가 추가된다.



저장프로시저를 이용하기위해서는 전처럼 하나하나에 권한을 추가해주어야한다.

프로그래밍 기능<저장 프로시저 에서 해당 저장프로시저에서 오른쪽 클릭을 하여  속성을 눌러 속성창을 연다.

사용권한에 보면 사용자 또는 역할이 있는데 아까 만들었던 사용자(로그인이 아님)를 추가하고 Execute권한에 체크를 한다. 스키마 밑에 보면 '스키마 사용 권한 보기'라는 것이 있는 이것을 누르면 연결된 스키마의 권한 정보가 나온다. 로그인 사용자를 누르고 Execute권한에 체크를 한다.(어느 사이트의 설명에서는 권한을 위임받아서 사용한다고 되있었다.)

유효 사용 권한을 눌러보면 연결이 제대로 됬는지 확인해 볼수 있다.


좀 복잡한 느낌은 들지만 나는 어차피 테이블을 다 만들어놓고 그것에 마쳐 프로그래밍을 하기때문에 어차피 쓰는권한은 한정되있으니 별로 걱정은 되지 않지만....예상보다 구하기 힘든 자료에 당황스러웠다;;;(도움말이 이렇게 허접하게 느껴질줄이야-_-;;)

이제 완벽하니 다음 포맷때는 삽질 말아야지

MSSQL 접속프로그램 다운받기(서버 운영 프로그램도 포함)

MSSQL서버에 접속하는 프로그램을 다운받으려면 아래 주소에 가서
SQL Server Management Studio Express 를 다운받는다
MSSQL 서버를 운영하고 싶다면 SQL Server 2005 Express Edition SP1 을 다운 받는다

http://www.microsoft.com/korea/msdn/vstudio/express/sql/download/