SQLServerCentral Editorial

Throwing Iron at the Cloud and AI

As organizations move to the cloud, the once essential role of the Database Administrator (DBA) as the guardian of system optimization, has been overshadowed, often viewed as a bottleneck to innovation. Yet, as technology evolves, the one thing I know is history repeats itself, and optimization skills are once again emerging as a critical necessity. […]

SQLServerCentral Article

JSON in Microsoft SQL Server: A Comprehensive Guide

Introduction JSON (JavaScript Object Notation) has become a popular data format for storing and exchanging information. Microsoft SQL Server, starting from version 2016, introduced built-in support for JSON, allowing developers to work with JSON data more efficiently within the relational database environment. This article will explore how to store, retrieve, and manipulate JSON data in […]

SQLServerCentral Article

Creating a Linked Server in Amazon RDS for SQL Server: A Step-by-Step Guide

Linked servers in Amazon RDS for SQL Server allow seamless connectivity to remote databases for distributed queries and data integration. In this article, I guide you through the step-by-step process of creating a linked server using SQL commands, from setting up authentication to testing the connection. Learn best practices, advanced configurations, and essential considerations, including why you can't use SSMS for linked server setup in RDS. This professional guide is tailored for experienced database administrators looking to optimize cross-server operations.

Technical Article

A Practical Guide to Using Azure Key Vault in Enterprise Deployments

Key vaults define security boundaries for stored secrets. It allows you to securely store service or application credentials like passwords and access keys as secrets. All secrets in your key vault are encrypted with a software key. When you use Key Vault, you no longer need to store security information in your applications. Not having to store security information in applications eliminates the need to make this information part of the code.

External Article

Add and Subtract Dates using DATEADD in SQL Server

Date manipulation is a common scenario when retrieving or storing data in a Microsoft SQL Server database. There are several date functions (DATENAME, DATEPART, DATEADD, DATEDIFF, etc.) that are available and in this tutorial, we look at how to use the DATEADD function in SQL queries, stored procedures, T-SQL scripts, etc. for OLTP databases as well as data warehouse and data science projects.

Blogs

Five Ways Redshift Serverless Quietly Eats Your Budget

By

It is Friday, the queries are running, and nobody is watching the bill. That...

A Career of Memories

By

Annabel retired from Redgate Software this week. Across most of my career at Redgate,...

Rethinking Index Maintenance: Why avg_fragmentation_in_percent Is Outdated and What You Should Do Instead

By

As a SQL Server DBA with years of experience tuning production environments, I’ve seen...

Read the latest Blogs

Forums

What is the Cloud?

By Steve Jones - SSC Editor

Comments posted to this topic are about the item What is the Cloud?

Changing the Schema

By Steve Jones - SSC Editor

Comments posted to this topic are about the item Changing the Schema

Index Fragmentation Explained: Page Splits, Logical Reads, and What to Do

By Sanket Parmar

Comments posted to this topic are about the item Index Fragmentation Explained: Page Splits,...

Visit the forum

Question of the Day

Changing the Schema

I set up a few users on my SQL Server 2022 instance.

CREATE LOGIN User1 WITH PASSWORD = 'Demo12#1'
CREATE USER User1 FOR LOGIN User1
GO
CREATE LOGIN User2 WITH PASSWORD = 'Demo12#2'
CREATE USER User2 FOR LOGIN User2
GO
CREATE LOGIN User3 WITH PASSWORD = 'Demo12#3'
CREATE USER User3 FOR LOGIN User3
GO
I then created a schema that one of them owned. Under this schema, I added a table with some data.
CREATE SCHEMA MySchema AUTHORIZATION User1
GO
CREATE TABLE Myschema.MyTable(myid INT)
GO
INSERT MySchema.MyTable
(
    myid
)
VALUES
(1), (2), (3)
GO
SELECT * FROM MySchema.MyTable
GO
I granted rights and verified that User2 could access this table.
GRANT SELECT ON Myschema.MyTable TO User2
GO
SETUSER 'USER2'
GO
SELECT * FROM MySchema.MyTable
GO
This worked. Now, I move this schema to a new user.
ALTER AUTHORIZATION ON SCHEMA::Myschema TO User3;
GO
What happens with this code?
SETUSER 'USER2'
GO
SELECT * FROM MySchema.MyTable
GO

See possible answers