Secret sharing is an important topic in cryptography and has applications in information security. There are several app roaches for constructing secret sharing schemes in the literature. One of the methods is based on coding theory. Theoritically, every linear code can be used to construct a secret sharing scheme. The access structure in this scheme is based on minimal codewords of a particular code. In this thesis, several codes are introduced that the covering problem has been solved for them; the covering problem is the determiniation of the minimal codewords. In this thesis; we also use self-dual codes to construct secret sharing schemes. We use combinatorial properties to understand the access structure of such secret sharing schemes. We describe two techniques to determine the access structure of a scheme: the first arising from design properties in codes and the second from the jacobi weight enumerator. The presented access structures are of two types. In the first type, there are a number of dictatorial participants who must be involved in recovering the secret. In the second type (democratic type) every participant appears in a same number of minimal access sets. However, in general, determining the access structure of the scheme is very hard. We study a set of minimal codewords for certain codewordes of any binary linear code and determines the minimal access structure of secret sharing schemes based on any binary linear code.