320x100
반응형
320x100
반응형
개요 MS-SQL(SQL Server) 에서는 NEWID() 함수를 이용하여 임의의 데이터를 조회할 수 있다. 예를 들면, 1부터 10까지의 숫자가 있을 경우 NEWID() 함수를 통해 1~10 사이의 임의의 값을 출력하여 조회할 수 있다. -- 테이블 변수 생성 DECLARE @temp_table TABLE( num int ) -- 테이블 변수에 1~10의 값 추가 DECLARE @i int = 1 WHILE @i
개요 MS-SQL 에서 SSMS(SQL Server Management Studio)툴을 이용하여 로그인 사용자를 추가하고, 사용자의 권한을 부여해보자. 사용자 권한 부여 시 여러가지 권한 종류에 대한 설명도 함께 포함되어 있다. 이 포스팅은 SSMS 툴을 이용하기 때문에 명령어를 사용하지 않고 GUI를 이용하여 진행하도록 한다. 사용자 추가하기 새로운 사용자를 추가해보자. 보안 - 로그인 우클릭 - 새 로그인 (Security - Logins Right Click - New Login) 새롭게 추가할 사용자 정보를 입력해주자. 로그인 이름 SQL Server 인증 선택 암호 및 암호 확인 '다음 로그인할 때 반드시 암호 변경'은 선호에 따라 선택 기본 데이터베이스 선택 확인을 누르면 입력한 사용자가 생..
개요 같은 네트워크에 있는 컴퓨터들 중에 다른 컴퓨터로 특정 컴퓨터의 데이터베이스 서버에 접속해야 할 때가 있다. 이는 주로 회사에서 동일 네트워크망에 구축된 데이터베이스를 접속할 때 쓰인다. 아무리 같은 네트워크라도 SQL Server의 접속 정보만으로는 접속이 되지 않는다. 이번 포스팅에서는 동일 네트워크에 있는 MS-SQL(SQL Server)를 접속하는 방법과 사용자 추가 방법, 그리고 특정 사용자에게 데이터베이스를 접근할 권한 설정하는 방법을 다룬다. 로컬 DB 서버의 접속 허용하기 (SQL Server 포트 허용) 우선 데이터베이스를 제공하는 컴퓨터에서 SQL Server의 포트를 열어주어야 한다. 윈도우 시작 버튼을 누르고, '고급 보안이 포함된 Windows Defender 방화벽'을 검색..
sa 계정은 데이터베이스를 관리하는 데에 사용되는 최고 권한의 관리자 계정이다. 하지만 sa 계정의 비밀번호를 분실했을 때는 어떻게 해야할까? SQL Server 접속 포스팅에서는 sa 계정의 비밀번호를 변경하기 위해서는 SSMS를 이용한다. sa 계정보다 더욱 강력한 윈도우 인증 로컬 호스트로 접속하여야 한다. 로컬 호스트로 접속하기 위해서는 데이터베이스 SQL Server가 실행되고 있는 컴퓨터에서 진행하여야 한다. SSMS에서 sa 계정 비밀번호 변경하기 로컬 호스트로 SQL Server에 접속을 하였다면, 1) 'Security - Logins' 경로로 진입하여 sa 계정을 더블클릭한다. 2) 로그인 속성 팝업이 출력되면 'Password'와 'Confirm password' 입력란에 새로운 비밀..
개요서비스 중인 데이터베이스의 테이블 값을 변경하려 할 때의 작업은 매우 조심스럽다. 사내 데이터베이스 구조는 스테이징 서버가 따로 없고, 개발 서버 > 운영 서버를 거치는 구조인데, 개발 서버 또한 사내에서 관련 작업을 하는 부서가 따로 있기 때문에... 트랜잭션으로 안전하게 하려고 테이블 락을 걸수도 없을 뿐더러, 테이블의 데이터를 마음대로 바꾸어서는 안된다. 때문에 나는 주로 임시로 사용할 temp 테이블을 복사할 때 Export Data / Import Data를 사용하여 서비스 중인 데이터베이스의 테이블을 복사하여 복사된 테이블에서 데이터를 가공한 후, 이상이 없는지 검증 후에 본 서버의 데이터베이스 테이블과 가공된 부분만 업데이트하는 작업을 추가로 한다. 어느 날, 특정 데이터베이스의 데이터를..
개요 상황에 따라서 내가 원하는 입력 순서대로 값을 출력해야될 때가 있다. 예를 들어 보자. 행의 값이 각각 '1', '2', '3'인 행이 있다. 이 중에서 임의로 '2' > '3' > '1' 의 순서로 결과를 조회해야 한다. 하지만 MSSQL에서는 '1' > '2' > '3' 순서대로 결과가 출력된다. 입력 쿼리 select * from number_table where number in (2, 3, 1) 조회 결과 내가 생각한대 순서대로 조회되지 않고 자동적으로 정렬되어서 나온다. 왜 그럴까? 그리고 어떻게 해야 할까? [ 결과 미리 보기 ] 1부터 9까지의 값이 있는 테이블이 있다. 나는 이 테이블을 2, 4, 6, 8, 9, 7, 5, 3, 1 순으로 조회를 해야 한다. [ 참고사항 ] 이 포스..