Database 43

[PostgreSQL] 권한 부여 및 제거

권한 부여데이터베이스에 대한 권한 부여-- 접속 권한GRANT CONNECT ON DATABASE 데이터베이스명 TO 계정명;-- 객체 생성 권한GRANT CREATE ON DATABASE 데이터베이스명 TO 계정명;-- 모든 권한GRANT ALL PRIVILEGES ON DATABASE 데이터베이스명 TO 계정명; 테이블에 대한 권한 부여-- 조회 권한GRANT SELECT ON TABLE 테이블명 TO 계정명;-- 삽입 권한GRANT INSERT ON TABLE 테이블명 TO 계정명;-- 수정 권한GRANT UPDATE ON TABLE 테이블명 TO 계정명;-- 삭제 권한GRANT DELETE ON TABLE 테이블명 TO 계정명;-- 모든 권한GRANT ALL PRIVILEGES ON ALL TAB..

Database/PostgreSQL 2024.09.12

[Oracle] 테이블 스페이스(Table Space) 변경

솔루션 릴리즈 파일을 설치 및 테스트를 위해 오라클에서 데이터베이스와 계정을 새로 생성했다.해당 DB로 설치한 후 테스트를 하는데 계속 테이블 스페이스가 부족하다는 에러가 발생했다.그래서 현재 세션에서 사용 중인 테이블 스페이스를 조회했다.SELECT tablespace_nameFROM dba_segmentsWHERE owner = USER;위 쿼리로 조회했더니 테이블 스페이스 용량이 매우 작은 것으로 할당되어 있었다. DB 생성할 때 테이블 스페이스를 용량 큰 걸로 지정해놓은 줄 알았는데 제대로 설정되지 않았다. 테이블과 인덱스의 테이블 스페이스를 변경하는 쿼리는 다음과 같다. - 테이블의 table space 변경 쿼리ALTER TABLE 테이블명 MOVE TABLESPACE USERS; - 인덱스의..

Database/Oracle 2024.09.02

[Oracle/Error] ORA-28000: the account is locked

리눅스에 솔루션을 설치한 후 오라클 계정에 접속하려하니 'ORA-28000: the account is locked'라는 에러가 발생하면서 접속이 되지 않았다. 내가 접속하려는 계정이 잠겨있다는 것이다. 이는 다음과 같은 원인으로 발생할 수 있다.Oracle 서버를 디폴트(DEFAULT)로 설치할 경우, 일부 계정은 잠금(Locked) 상태로 생성된다.Oracle 서버를 설치할 때, 관리자가 일부러 계정을 사용할 수 없도록 잠금 상태로 변경한다.(관리자: 계정에 대한 잠금/해제 권한을 가진 사용자)로그인에 여러 번 실패하면 계정이 잠긴다.(실패 횟수는 FAILED_LOGIN_ATTEMPTS에 설정) 이러한 경우에는 관리자 계정으로 접속하여 다음 쿼리를 실행하면 계정 잠금이 해제된다.ALTER USER 잠..

Database/Oracle 2024.07.27

[Oracle/Error] ORA-01013: user requested cancel of current operation

솔루션 패치 후에 특정 기능의 화면이 정상적으로 보이지 않아 서버 쪽 로그를 확인해보았다.ORA-01013: user requested cancel of current operation 에러가 발생하였는데, 이는 특정 기능을 위한 update 쿼리를 실행하면서 타임아웃이 발생하여 생긴 에러이다. 나의 경우는 오라클 DB에서 테이블 컬럼 추가 후 commit을 하지 않아서 해당 에러가 발생한 것이다.DB가 auto commit을 하지 않도록 설정되어 있어서 ddl 실행 후 commit을 따로 해줘야 했는데, 이를 까먹어버려서 해당 컬럼을 사용하려는데 없어서 사용하지 못하고 타임아웃이 발생되었다. commit 후 재기동하니 해당 에러는 발생하지 않았다.

Database/Oracle 2024.07.10

[PostgreSQL/Error] permission denied for language internal

설치파일 테스트를 위해 데이터베이스 계정을 새로 만들어 설치파일과 관련된 설정 SQL 파일을 실행했는데 위 에러가 발생했다. 찾아보니 내가 만든 데이터베이스 계정이 슈퍼유저 권한이 없었던 게 문제였다.또한 저 SQL 파일 이외에 DDL SQL 파일도 있었기 때문에 CREATEDB 권한도 필요했다. 슈퍼유저 권한과 CREATEDB 권한 설정은 다음 쿼리를 실행하면 된다.1) 슈퍼유저 권한 부여 쿼리ALTER USER DB사용자계정명 WITH SUPERUSER;#예시> ALTER USER tistory WITH SUPERUSER; 2) CREATEDB 권한 부여 쿼리ALTER USER DB사용자계정명 CREATEDB;# ALTER USER tistory CREATEDB;  참고) DB 사용자 계정마다 부여된..

Database/PostgreSQL 2024.05.23

[PostgreSQL] DB에 있는 모든 테이블 삭제하기

회사에서 릴리즈 파일에 최종 업그레이드 버전 패치쉘을 수행한 후 테스트했었는데, 이후에 다른 테스트를 위해 사용하던 DB의 모든 테이블을 삭제해야 했다. PostgreSQL의 DB 내 모든 테이블을 삭제하는 방법은 다음과 같다. 1. pgsql이 설치되어 있는 서버로 들어가 psql로 해당 스키마에 연결한다.예를 들어 username이 pgpatch이고 dbname이 pgtest라면 아래와 같이 입력한다.psql -U pgpatch -d pgtest 2. 아래 스크립트를 입력한다.DO $$ DECLARE r RECORD;BEGIN FOR r IN (SELECT tablename FROM pg_tables WHERE schemaname = current_schema()) LOOP E..

Database/PostgreSQL 2024.02.06

[MySQL/Error] com.mysql.cj.jdbc.Driver 오류

com.mysql.cj.jdbc.Driver 오류 해결방법 Spring Boot에 MySQL을 연동시키려고 하였다. application.yml에 datasource 속성을 입력했는데 driver-class-name에서 에러가 떴다. 처음에 다음과 같은 의존성을 추가했음에도 에러는 그대로였다. runtimeOnly 'mysql:mysql-connector-java' runtimeOnly 'mysql:mysql-connector-java:8.0.32' 좀더 구글링해보다가 다음 방법으로 해결하였다. build.gradle 파일에서 다음 dependencies를 추가한 후 gradle을 재실행해주면 된다. dependencies { ... runtimeOnly 'com.mysql:mysql-connector-..

Database/MySQL 2023.10.08

[MySQL] 데이터베이스 생성과 계정 생성 및 권한 부여, 계정 삭제

MySQL 데이터베이스 생성 및 계정 생성, 권한 부여, 계정 삭제 MySQL Workbench에서 다음 쿼리를 실행하였다. 1. 데이터베이스 생성 CREATE DATABASE 데이터베이스명; --ex) CREATE DATABASE dbtest; 2. 계정 생성 및 권한 부여 - 로컬에서만 접속할 수 있는 계정 생성 및 권한 부여 CREATE USER 계정명@'localhost' IDENTIFIED BY '비밀번호'; --ex) CREATE USER myuser@'localhost' IDENTIFIRED BY 'My111!'; GRANT ALL PRIVILEGES ON 데이터베이스명.* TO '계정명'@'localhost'; --ex) GRANT ALL PRIVILEGES ON dbtest.* TO 'm..

Database/MySQL 2023.10.08