如何实现SQL数据库中用户只能查询、修改用户表中自己的信息,用代码实现。用到授权。

如何实现SQL数据库中用户只能查询、修改用户表中自己的信息,用代码实现。用到授权。,第1张

sp_addrole 'supplier'--创建角色

grant select,update--授权

on supply

to supplier

创建数据库的SQL语句:

create database stuDB

on primary -- 默认就属于primary文件组,可省略

(

/*--数据文件的具体描述--*/

name='stuDB_data', -- 主数据文件的逻辑名称

filename='D:\stuDB_data.mdf', -- 主数据文件的物理名称

size=5mb, --主数据文件的初始大小

maxsize=100mb, -- 主数据文件增长的最大值

filegrowth=15%--主数据文件的增长率

)

log on

(

/*--日志文件的具体描述,各参数含义同上--*/

name='stuDB_log',

filename='D:\stuDB_log.ldf',

size=2mb,

filegrowth=1mb

)

删除这个数据库,SQL Server将数据库的清单存放在master系统数据库的sysdatabases表中,只需要查看该表是否存在于该数据库中就可以

了,语句如下:

use master -- 设置当前数据库为master,以便访问sysdatabases表

go

if exists(select * from sysdatabases where name='stuDB')

drop database stuDB

go

创建表和删除表的SQL语句如下:

use StuDB

go

if exists(select * from sysobjects where name='stuMarks')

drop table stuMarks

create table stuMarks

(

ExamNo int identity(1,1) primary key,

stuNo char(6) not null,

writtenExam int not null,

LabExam int not null

)

go

-- 其中,列属性"identity(起始值,递增量)" 表示"ExamNo"列为自动编号, 也称为标识列

alter table 表名

add constraint 约束名 约束类型 具体的约束说明

alter table 表名

drop constraint 约束名

alter table stuMarks

add constraint UQ_stuNo Unique(stuNo)

alter table stuMarks

drop constraint UQ_stuNo

/*--添加SQL登录账户--*/

exec sp_addlogin 'xie', '123456' -- 账户名为xie,密码为123456

--删除xie账户名

exec sp_droplogin 'xie'

/*--在stuDB数据库中添加两个用户(必须存在)--*/

use stuDB

go

exec sp_grantdbaccess 'xie','123456'

go

-- 提示:SQL Server 中的dbo用户是具有在数据库中执行所有活动权限的用户,表示数据库的所有者(owner),一般来说,

-- 如果创建了某个数据库,就是该数据库的所有者,即dbo用户,dbo用户是一个比较特殊的数据库用户,无法删除,且此用

-- 户始终出现在每个数据库中

/* --给数据库用户授权-- */

-- 授权的语法如下

-- grant 权限 [on 表名] to 数据库用户

use stuDB

go

grant select,update,insert on stuMarks to xie

grant create table to xie

go

grant insert on sc to 用户名

比如你的用户名叫user

grant insert on sc to user

那个table没必要写哦

你用的什么数据库?

方便的话把你语句帖出来

你说的那个用户和学生表里的用户根本不是一回事啊,这里说的用户是指数据库用户,你看学生用户是用哪个数据库用户登录的,把权限给这个数据库用户授权

那就要看你用的什么做的系统了,每种系统应该不一样的

要不你就建点数据库用户,授权查询和insert

grant select,insert on sc to user

你把user改成数据库中的用户,user我只是用来代替数据库用户的

--------补充---------

1.确认验证模式

在 SQL Server Management Studio 中,对象资源管理器,主机名上点右键,主机属性,安全,确认"服务器身份验证"为"SQL和Windows身份验证模式"

2.新建登录名

在主机名树下的安全性中,添加登录名,在登录名项上右键,新键登录名

例:登录名:User01,模式为SQL验证,密码:User01

去掉"强制实施密码策略"的复选,默认数据库指向你允许访问的数据库

****** 还没有完,别急着点确定 ******

3.用户映射

在左侧列表中,点击"用户映射",找到你允许访问的数据库,在前面打对勾

在下方的"数据库角色成员身份"只,赋于对应的权限

相关角色的权限说明,可以在网上搜索,例如:

http://www.17xie.com/read-105583.html

确定,完成登录名建立

4.如果是受限制的登录名,可以不选择成员身份

这种情况下,返回左侧的主机名树下,展开数据库,找到允许访问的数据库,右键数据库属性,权限,选择刚刚映射的登录名,在下侧的"数据库的显示权限"中,选择Select、Insert、Delete、Update、Execute, 这就根据你的需要配置了


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9982246.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存